ASP.NET MVC 2非同期アクション用に強く型付けされたAPIを作成しようとした人はいますか?
よろしく、アレクセイ・ザハロフ
ASP.NET MVC 2非同期アクション用に強く型付けされたAPIを作成しようとした人はいますか?
よろしく、アレクセイ・ザハロフ
私があなたを正しく理解していれば、私たちは最近このようなことをしたと思います. 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 プラグインもお勧めします。
お役に立てれば。
MVC はこれを行うことができますが、提供されたコード サンプルからの私の理解では、json ベースの API が必要であるということです。
Microsoft はまさにこの状況のために WebAPI を作成しました。これは厳密に型指定されており、基になる設計で MVC パターンに従っていますが、うまく機能し、同じ Web アプリケーション内で MVC と一緒に使用することもできます。
でも:
必要に応じて、単純な Json シリアライザー パッケージを使用して MVC コントローラー アクションからシリアル化されたオブジェクトを提供し、結果の文字列を返すだけで、ActionResult はこのシナリオもサポートします。投稿では、組み込みのメタデータ インフラストラクチャを使用して、あなたの希望するタイプの安全性を与える投稿。
MVC コントローラーを REST エンドポイントのように扱うことも可能です。これは、典型的な REST 呼び出しをサポートするためにコントローラーを適切な方法で構築するだけの問題です。
ただし、API シナリオにより適しているため、これには WebAPI を使用することを強くお勧めします。