2

ASP.Net Web API (RC) には、次のようなテスト モデル クラスがあります。

[ModelBinder]
public class TestRequest
{
    public string Foo { get; set; }
    public string Bar { get; set; }
}

私のコントローラーは次のようになります。

public class TestController : ApiController
{
    public TestRequest Get(TestRequest model)
    {
        return model;
    }
}

次に、次の方法でアクションを呼び出すとします。

http://.../test?foo=abc&bar=xyz

モデルバインダーはモデルプレフィックスを期待しているため、どちらの値もバインドされないため、実際に呼び出す必要があります。

http://.../test?model.foo=abc&model.bar=xyz

これは、他のアクション パラメーターを正しくバインドできるようにするためであることは理解できますが、私の場合、モデルは可能なすべてのアクション パラメーターをカプセル化するクリーンな方法であるため、大量の厄介なアクション メソッド シグネチャを使用する必要はありません。オプションのパラメータの。また、モデルの検証も容易になります。

モデル バインディングを MVC や POST リクエストと同じように動作させる簡単な方法はありますか?

4

1 に答える 1

0

モデルクラスから属性を削除するModelBinderと、投稿した例で機能するはずです。より複雑なメソッド シグネチャの問題が発生します。Rick Strahl のコメントを参照してください。 #10302750

于 2012-06-08T06:46:20.327 に答える