0

こんにちは人web apiのルートとハンドラに関する問題について助けが必要です。私は2つのルートを持っている、私はその1つのルートは、カスタムハンドラを使用したい、他のルートはデフォルトを使用します。私はこのコードを持っています。web api asp.netで別のハンドラを持つルート

config.Routes.MapHttpRoute(

      name: "NamedActions", 
      routeTemplate: "api/{controller}/{action}/{id}", 
      defaults: new { id = RouteParameter.Optional }, 
      handler: customConfig.MessageHandlers.Add(new BasicHandler(new Repository())) 
     ); 

config.Routes.MapHttpRoute(
      name: "ApiLogin", 
      routeTemplate: "apiLogin/v1/LoginApi", 
      defaults: new { controller = "LoginApi"}//, 
     ); 

が、私は(エラー43「MapHttpRoute」の最高過負荷が「ハンドラ」という名前のパラメータを持っていない)私にエラーをスローhandler: customConfig.MessageHandlers.Add(new BasicHandler(new Repository()))を置きます。

最初のルートでは、このカスタムハンドラのないRepository()のハンドラBasicHandler()を使用します。これは可能ですか?ハンドラが異なる2つのルートがありますか?

答えて

0

私は私の問題の解決策を見つけたルーティング属性を使用する必要があり、私は属性ハンドラを置きたい場合は、私が最初の属性制約を置くことをしなければならないと、後でハンドラ属性。例えば:

config.Routes.MapHttpRoute(

 name: "NamedActions", 
     routeTemplate: "api/{controller}/{action}/{id}", 
     defaults: new { id = RouteParameter.Optional }, 
     constraint: null, 
     handler: customConfig.MessageHandlers.Add(new BasicHandler(new Repository())) 
    ); 
関連する問題