我想知道是否有可能在 ASP.net MVC 的控制操作中返回一个序列化的 AMF 对象,任何人都尝试过这个?
提前致谢。
我几乎没有使用 MVC 的经验,但我已经完成了一些将 AMF 数据写入 Flash 客户端的测试。我所做的是构建一个在 FluorineFX 中使用 ByteArray 类的通用处理程序。我创建了一个对象实例并使用 WriteObject() 将其写入 ByteArray。然后我将 ByteArray 的数据写入响应流。然后在 Flash 中,我使用了标准 URLLoader 并使用了 (URLLoader.data as ByteArray) 中的 ReadObject(),我将对象反序列化并准备就绪。(当然我必须先完成所有的 RemoteClass 和 registerClassAlias)
我的猜测是 MVC 操作也允许您访问响应流,因此您应该进行设置。
我不知道 AMF 对象是什么(是的,我可以用谷歌搜索它,但我不会)。但是,你可以序列化 ASP.MVC 中的任何对象。例如,返回 JSON 对象是使用内置序列化的一个示例。
public ActionResult MyAction()
{
...
// Populate myObject
return new JsonResult{ Data = myObject };
}
所以这里的诀窍是,您需要确保这些 AMF 对象之一中的所有对象都可以序列化。如果没有,那么不要忘记您可以返回一个序列化的匿名对象。
例如。
public ActionResult MyAction()
{
...
// Populate myObject
return new JsonResult
{
Data = new
{
Id = object.Id,
Name = object.FirstName + ' ' object.Surname,
.... etc ....
}
};
}
hth。
如果现有的 ActionResult 类不允许您发出所需的格式,您还可以创建自己的 ActionResult 类。
该站点包含有关创建自定义 ActionResults 的信息:http: //blogs.msdn.com/jowardel/archive/2009/03/11/asp-net-rss-actionresult.aspx