Вот мой 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 }
);
}
}
Вот мой ApiController
public class HelloController : ApiController
{
public string Get()
{
return "get method";
}
[Route("SayHello")]
public string SayHello()
{
return "Hello Jim";
}
}
Если я просматриваю к http://localhost:52072/api/hello/get
то я буду получать обратно "получить метод", как и ожидалось.
Если я просматриваю http://localhost:52072/api/hello/SayHello
, то это ошибки с 404 not found
.
Любые идеи?
No. Теперь я получаю Error 405 Method Not Allowed. – CathalMF
Ваш префикс маршрута работает. Другой не по какой-то причине. Благодарю. – CathalMF
My bad the tilde (~) - это переопределение префикса маршрута, использующего обычный маршрут в той ситуации, когда вы смешиваете стандартную маршрутизацию и маршрутизацию атрибутов. – Nkosi