라우팅 기본 대 {컨트롤러}/{동작}/{ID} :웹 API 라우팅 나는 그 요청에 응답 할 수있는 컨트롤러를 만들려는
- API/사용자/123
- API/사용자/UsersOfCompany? ID = 123 & & pageIndex = 0 pageSize가 = 20
- API/사용자/AllowedCompanies? ID = 123 & & pageIndex = 0 pageSize가 = 10
이것은 실제 코드입니다.
사용자 컨트롤러
public class UserController : ApiController
{
[HttpGet]
public IHttpActionResult Get(int id)
{
//... implementation...
}
[HttpGet]
[ActionName("UsersOfCompany")]
public IHttpActionResult UsersOfCompany(int id, [FromUri] Paging paging)
{
//... implementation...
}
[HttpGet]
[ActionName("AllowedCompanies")]
public IHttpActionResult AllowedCompanies(int id, [FromUri] Paging paging)
{
//... implementation...
}
}
WebApiConfig
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Servizi e configurazione dell'API Web
// Route dell'API Web
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "ApiWithActionName",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.MessageHandlers.Add(new LanguageMessageHandler());
}
}
RouteConfig
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
requ에 샘플을 바탕으로 지금은 마지막 2 개 요청 (UsersOfCompany, AllowedCompanies)를 호출 할 수
Get(int id)
UsersOfCompany(int id, [FromUri] Paging paging)
AllowedCompanies(int id, [FromUri] Paging paging)
을하지만 : 동부 표준시 위, 나는 직장이 방법을 라우팅하고 싶습니다.
"Could not find an HTTP resource that matches the request's URL 'Service/api/User/123'.", "Unable to find an action on the 'User' controller with name '42887'."
가 이미 경로 등록의 순서를 반전하려고하지만 난 그 api/User/123
전화 작품과 다른 사람이되지 않도록, 반대 동작을 otained : 나는 API/사용자/123 호출 할 때 나는이 오류가 발생합니다.
어디에 문제가 있습니까?
찾을 우리에게 요구하는 문제는 무엇인가? 오류 메시지가 있습니까? 그렇다면 언제 또는 어디에서 발생합니까? – NightOwl888
죄송합니다 ... 질문이 업데이트되었습니다. :-) –