2

ASP.NET MVC 2非同期アクション用に強く型付けされたAPIを作成しようとした人はいますか?

よろしく、アレクセイ・ザハロフ

4

2 に答える 2

0

私があなたを正しく理解していれば、私たちは最近このようなことをしたと思います. ASP.NET MVC 2 Futures ライブラリの JsonValueProviderFactory を使用して、厳密に型指定されたアクションを実現しました (詳細については、haaked.comを参照してください)。

非同期アクションについては、次のようなものがあります。

[HandleError]
public class HomeController : AsyncController
{
    [HttpPost]
    public void IndexAsync(Person person)
    {
        DoSomething();
    }

    public ActionResult IndexCompleted()
    {
        return View();
    }
}

public class Person
{
    public string Forename { get; set; }
    public string Surname { get; set; }
}

そして、次のようにアクションに POST を作成します。

{"Forename": "Cheesy", "Surname": "Goat"}

これをテストするのに役立つ 'REST Client' と呼ばれる優れた Firefox プラグインもお勧めします。

お役に立てれば。

于 2011-07-19T21:53:16.913 に答える
-1

MVC はこれを行うことができますが、提供されたコード サンプルからの私の理解では、json ベースの API が必要であるということです。

Microsoft はまさにこの状況のた​​めに WebAPI を作成しました。これは厳密に型指定されており、基になる設計で MVC パターンに従っていますが、うまく機能し、同じ Web アプリケーション内で MVC と一緒に使用することもできます。

でも:

必要に応じて、単純な Json シリアライザー パッケージを使用して MVC コントローラー アクションからシリアル化されたオブジェクトを提供し、結果の文字列を返すだけで、ActionResult はこのシナリオもサポートします。投稿では、組み込みのメタデータ インフラストラクチャを使用して、あなたの希望するタイプの安全性を与える投稿。

MVC コントローラーを REST エンドポイントのように扱うことも可能です。これは、典型的な REST 呼び出しをサポートするためにコントローラーを適切な方法で構築するだけの問題です。

ただし、API シナリオにより適しているため、これには WebAPI を使用することを強くお勧めします。

于 2010-05-17T15:14:02.870 に答える