asp.net MVC

мне интересно, возможно ли вернуть сериализованный объект AMF в действии управления в ASP.net MVC, кто-нибудь пробовал это раньше?

заранее спасибо.


person BruNeX    schedule 02.04.2009    source источник
comment
Можете ли вы предоставить немного больше информации о том, что вы хотите сделать? Я предполагаю, что у вас есть какой-то виджет Flash/Flex в вашем пользовательском интерфейсе и вы хотите предоставить ему данные..?   -  person cliff.meyers    schedule 05.04.2009


Ответы (3)


У меня практически нет опыта работы с MVC, но я провел некоторое тестирование с записью данных AMF в клиент Flash. Что я сделал, так это создал универсальный обработчик, который использовал класс ByteArray в FluorineFX. Я создал экземпляр объекта и записал его в ByteArray с помощью WriteObject(). Затем я записал данные ByteArray в поток ответов. Затем во Flash я использовал стандартный URLLoader и использовал ReadObject() из (URLLoader.data as ByteArray), и мой объект был десериализован и готов к работе. (Конечно, сначала мне пришлось сделать всю гадость RemoteClass и registerClassAlias)

Я предполагаю, что действие MVC также позволяет вам получить доступ к потоку ответов, поэтому вы должны быть настроены.

person Johan Öbrink    schedule 04.05.2009

Я понятия не имею, что такое объект AMF (да, я могу погуглить, но не буду). НО, вы можете сериализовать любой объект в ASP.MVC. Например, возврат объекта JSON является примером использования встроенной сериализации.

проверьте этот предыдущий вопрос SO:

public ActionResult MyAction()
{    
    ... 
    // Populate myObject    
    return new JsonResult{ Data = myObject };
}

Итак, хитрость здесь в том, что вам нужно убедиться, что все объекты внутри одного из этих объектов AMF могут быть сериализованы. Если нет, то не забывайте, что вы можете вернуть сериализованный анонимный объект.

eg.

public ActionResult MyAction()
{    
    ... 
    // Populate myObject    
    return new JsonResult
        { 
            Data = new
            {
                Id = object.Id,
                Name = object.FirstName + ' ' object.Surname,
                .... etc ....
            }
        };
}

чт.

person Pure.Krome    schedule 04.05.2009

Вы также можете создать свои собственные классы ActionResult, если существующие не позволяют выдать нужный вам формат.

На этом сайте есть информация о создании пользовательских результатов действий: http://blogs.msdn.com/jowardel/archive/2009/03/11/asp-net-rss-actionresult.aspx

person AaronSieb    schedule 12.05.2009