【发布时间】:2010-10-17 03:20:22
【问题描述】:
我想知道是否有可能在 ASP.net MVC 的控制操作中返回一个序列化的 AMF 对象,任何人都曾尝试过这个?
提前致谢。
【问题讨论】:
-
你能提供更多关于你想要做什么的信息吗?我假设您的 UI 中有某种 Flash / Flex 小部件并想向它提供数据..?
标签: asp.net-mvc amf
我想知道是否有可能在 ASP.net MVC 的控制操作中返回一个序列化的 AMF 对象,任何人都曾尝试过这个?
提前致谢。
【问题讨论】:
标签: 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 对象就是使用内置序列化的一个例子。
check this previous SO question out:
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
【讨论】: