0

コントローラにこれらのメソッドがあるとします。

Get() 

[HttpGet]
FindSomeone()

デフォルトルートと、アクションのあるルートがあります:routeTemplate: "api / {controller}/{action}"

/ mycontroller / FindSomeoneを呼び出すと正常に動作しますが、GET / mycontroller /を呼び出すと、複数の一致するルートエラーで失敗します。

Get()メソッドのみに一致するデフォルトルートを作成し、FindSomeone()メソッドをスキップする方法はありますか?

4

2 に答える 2

0

Getメイン ルーティングですべてのコントローラのデフォルト アクションを宣言する

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional, action ="Get" }
    );
于 2013-03-20T23:49:42.683 に答える
0

このシナリオでは、AttributeRouting の方が適切に機能する可能性があります。2 つのメソッドを Get Attribute で装飾するのと同じくらい簡単なはずです。

[RoutePrefix("mycontroller")
public class MyController 
{
  [GET("")]
  Get() 

  [GET("FindSomeone")]
  FindSomeone()
}

これにより、これらのメソッドが mycontroller および mycontroller/FindSomeone として利用できるようになります。

于 2013-03-21T13:09:23.537 に答える