0

Web.API 2.0 のもの、特に属性ルーティングで遊んでいます。ドキュメントには、慣例により属性ルーティングと 1.0 ルーティングを使用できると記載されていますが、これら 2 つはうまく連携していないようです。たとえば、次の 2 つの方法があるとします。

public override HttpResponseMessage PutModel(SampleForm form)

[HttpPut("approvesampleform/{form}")]
public string ApproveSampleForm([FromBody]SampleForm form)

問題なく呼び出すことができますがhttp://localhost/api/sampleform/approvesampleformPUTtoはエラーをhttp://localhost/api/sampleform/生成しMultiple actions were found that match the requestます。

メソッドがルーティング属性でマークされている場合、規則によって無視される方法はありますか? これは理想的ですが、ドキュメントでこれを達成する方法がわかりません。

注: asp.net-web-api-2 タグが表示されません。おそらく、1500 人以上の担当者が作成できるでしょうか?

4

1 に答える 1

1

そうです、RC (リリース候補) には、従来のルートが属性付きコントローラー/アクションにアクセスできないロジックがありませんでした。この変更は RC 後に行われました。あなたがしようとしているシナリオは、ポストRCビットでうまくいくでしょう。

おそらく、あなたが言及したドキュメントはあまり明確ではありませんが、属性付きと慣例ベースのコントローラーを並べて動作させることができ、特に属性付きと従来のセマンティクスの両方を同じコントローラーに混在させることはできなかったことを意味していると思います。

当面は、上記のコントローラーに属性ルーティングのみを使用できます。

于 2013-09-23T17:11:12.580 に答える