2009-04-02 5 views
3

Je me demande s'il est possible de renvoyer un objet AMF sérialisé dans une action de contrôle dans ASP.net MVC quelqu'un comme cela a déjà été essayé?asp.net MVC

merci d'avance.

+0

Pouvez-vous fournir un peu plus d'informations sur ce que vous cherchez à faire? Je suppose que vous avez une sorte de widget Flash/Flex dans votre interface utilisateur et que vous voulez lui fournir des données ..? –

Répondre

1

J'ai peu ou pas d'expérience avec MVC mais j'ai fait quelques tests en écrivant des données AMF sur un client Flash. Ce que j'ai fait était de construire un gestionnaire générique qui utilisait la classe ByteArray dans FluorineFX. J'ai créé une instance d'objet et l'ai écrite dans le ByteArray avec WriteObject(). J'ai ensuite écrit les données de ByteArray dans le flux de réponse. Dans Flash j'ai ensuite utilisé un URLLoader standard et utilisé ReadObject() depuis (URLLoader.data comme ByteArray) et mon objet était désérialisé et prêt à partir. (Bien sûr, j'ai dû faire tout le RemoteClass et registerClassAlias ​​muck d'abord)

Je suppose que l'action MVC vous permet également d'accéder au flux de réponse, donc vous devriez être défini.

1

Je n'ai aucune idée de ce qu'est un objet AMF (oui, je peux le google mais je ne le ferai pas). MAIS, vous pouvez sérialiser n'importe quel objet dans ASP.MVC. Par exemple, renvoyer un objet JSON est un exemple d'utilisation de la sérialisation intégrée.

check this previous SO question out:

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

Donc, l'astuce ici, est que vous devez vous assurer que tous les objets à l'intérieur d'un de ces objets AMF peut être sérialisé. Si non, alors n'oubliez pas que vous pouvez retourner un objet anonyme sérialisé.

par ex.

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

hth.