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 オブジェクトが何かわかりません (はい、Google で検索できますが、できません)。ただし、ASP.MVC では任意のオブジェクトをシリアル化できます。たとえば、JSON オブジェクトを返すことは、組み込みのシリアル化を使用する例です。

この以前の SO の質問を確認してください

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 ....
            }
        };
}

h番目。

于 2009-05-04T12:02:58.587 に答える
1

既存のクラスでは必要な形式を発行できない場合は、独自の ActionResult クラスを作成することもできます。

このサイトには、カスタム ActionResults の作成に関する情報があります: http://blogs.msdn.com/jowardel/archive/2009/03/11/asp-net-rss-actionresult.aspx

于 2009-05-12T17:43:43.350 に答える