2009-04-02 36 views
3

私はASP.net MVCの誰かのコントロールアクションで直列化されたAMFオブジェクトを返すことができますか?asp.net MVC

ありがとうございます。

+0

あなたはあなたがする探しているものに関しては少しより多くの情報を提供することはできますか?私はあなたのUIに何らかの種類のFlash/Flexウィジェットを持っていて、そこにデータを提供したいと思っています。 –

答えて

1

私はMVCに関する経験はほとんどありませんが、AMFデータをFlashクライアントに書き込むことでいくつかのテストを行っています。私がやったのは、FluorineFXでByteArrayクラスを使ったGeneric Handlerを作ることでした。オブジェクトインスタンスを作成し、WriteObject()でByteArrayに書き込みました。次に、ByteArrayのデータをレスポンスストリームに書きました。 Flashでは、標準のURLLoaderを使用し、(URLLoader.dataをByteArrayとして)ReadObject()を使用して、オブジェクトを直列化解除して準備を整えました。 (もちろん、私はRemoteClassとregisterClassAliasのすべてを最初からやらなければならなかった)

私の推測では、MVCアクションは応答ストリームにもアクセスできるように設定する必要があるからです。

1

私はAMFオブジェクトが何であるか分かりません(はい、Googleにはできますが、私はできません)。しかし、あなたはASP.MVCの任意のオブジェクトをシリアル化することができます。たとえば、JSONオブジェクトを返すことは、組み込みシリアル化を使用する例です。

check this previous SO question out

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

だからここのトリックは、あなたがこれらのAMFオブジェクトの1内部のすべてのオブジェクトをシリアル化できることを確認する必要があるということです。そうでなければ、シリアライズされた匿名オブジェクトを返すことができることを忘れないでください。

例えば、

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

hth。