をルーティングは、ここに私のGlobal.asmxWeb API 2カスタムコントローラメソッド。ここで問題
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
である私のWebApiConfigクラスです。ここで
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
は、私がhttp://localhost:52072/api/hello/get
を参照する場合、私は予想通り "getメソッド" バックされます私のApiController
public class HelloController : ApiController
{
public string Get()
{
return "get method";
}
[Route("SayHello")]
public string SayHello()
{
return "Hello Jim";
}
}
です。
http://localhost:52072/api/hello/SayHello
を参照すると、エラーが404 not found
で表示されます。
アイデア?
号今私は許可されていませんエラー405メソッドを取得します。 – CathalMF
あなたのルートプレフィックスが機能します。もう1つは何らかの理由でではありません。ありがとう。 – CathalMF
私の悪いチルダ(〜)は、コンベンションベースルーティングと属性ルーティングを混在させている状況で、通常のルートを使用してルートプレフィックスをオーバーライドすることです。 – Nkosi