1

MVCと同等のWebAPIはありActionMethodSelectorAttributeますか?

私の具体的な目的は次のとおりです。たとえば、aがResourceControllerあり、コントローラーにアクセスするときに、単一のリソース( )またはリスト( )POSTを受信できるようにしたいと考えています。 ResourceIEnumerable<Resource>

異なるパラメーターを使用して2つのメソッドを作成すると、逆シリアル化プロセスで何らかの評価が行われることを期待していましたが、そうではないようです(率直に言って、コンテンツネゴシエーションと、 JSONなどの多くのデータ形式では、データ型を推測するのが困難です)。だから私はもともと持っていた:

public HttpResponseMessage Post(Resource resource) {...}

public HttpResponseMessage Post(IEnumerable<Resource> resources) {...}

...しかし、これは「複数のアクション」エラーを受け取ります。そこで、メソッドに注釈を付ける方法を調べてみましActionMethodSelectorAttributeたが、これはMVCルーティング専用であり、WebAPIではないこともわかりました。

だから...複数のリソースをPOSTするための異なるパスを必要とせずに(これは世界の終わりではありません)、私は区別するために何をしますか?

に沿った私の考えはActionMethodSelectorAttribute、複数を指定するクエリパラメータを必要とすることでした。これは、別のパスと同じだと思います。だから、私はこれを行うための現在の必要性を排除したと思いますが、それでもWebAPIに相当するものがあるかどうか知りたいですActionMethodSelectorAttribute:)

4

1 に答える 1

1

そのメソッドの代わりは見ていません(IActionMethodSelectorインターフェイスはありますが、DLLの内部にあります)。1つのオプション(やり過ぎのように見えますが)は、IHttpActionSelector使用されている実装をオーバーロードすることです。

しかし、ギアを少し変えると、いつも期待しないのはなぜIEnumerable<Resource>ですか?私の最初の推測は、(取るIEnumerable<Resource>)収集メソッドは単にループして単一の値(ちょうどResource)関数を呼び出すだろうということですか?

于 2012-08-17T11:35:30.780 に答える