【问题标题】:Return a serialized AMF object in a control action in ASP.net MVCASP.NET MVC
【发布时间】:2010-10-17 03:20:22
【问题描述】:

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

提前致谢。

【问题讨论】:

  • 你能提供更多关于你想要做什么的信息吗?我假设您的 UI 中有某种 Flash / Flex 小部件并想向它提供数据..?

标签: asp.net-mvc amf


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我不知道 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.

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-08
        • 1970-01-01
        • 2020-11-25
        • 2023-02-02
        • 2011-01-01
        • 1970-01-01
        • 2023-03-15
        • 2013-02-26
        相关资源
        最近更新 更多