3

我想知道是否有可能在 ASP.net MVC 的控制操作中返回一个序列化的 AMF 对象,任何人都尝试过这个?

提前致谢。

4

3 回答 3

1

我几乎没有使用 MVC 的经验,但我已经完成了一些将 AMF 数据写入 Flash 客户端的测试。我所做的是构建一个在 FluorineFX 中使用 ByteArray 类的通用处理程序。我创建了一个对象实例并使用 WriteObject() 将其写入 ByteArray。然后我将 ByteArray 的数据写入响应流。然后在 Flash 中,我使用了标准 URLLoader 并使用了 (URLLoader.data as ByteArray) 中的 ReadObject(),我将对象反序列化并准备就绪。(当然我必须先完成所有的 RemoteClass 和 registerClassAlias)

我的猜测是 MVC 操作也允许您访问响应流,因此您应该进行设置。

于 2009-05-04T11:41:52.647 回答
1

我不知道 AMF 对象是什么(是的,我可以用谷歌搜索它,但我不会)。但是,你可以序列化 ASP.MVC 中的任何对象。例如,返回 JSON 对象是使用内置序列化的一个示例。

检查这个以前的SO问题

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。

于 2009-05-04T12:02:58.587 回答
1

如果现有的 ActionResult 类不允许您发出所需的格式,您还可以创建自己的 ActionResult 类。

该站点包含有关创建自定义 ActionResults 的信息:http: //blogs.msdn.com/jowardel/archive/2009/03/11/asp-net-rss-actionresult.aspx

于 2009-05-12T17:43:43.350 回答