나는 동영상 컨트롤러가 있고 그 안에 다음과 같은 2 가지 방법이 있습니다 :웹 API 라우팅 문제
[Route("api/Video/{id:int}")]
public Video GetVideoByID(int id){ do something}
[Route("api/Video/{id}")]
public Video GetVideoByTitle(string id) {do something}
WebApiConfig.cs은 다음과 같다 : 그래서,
public const string DEFAULT_ROUTE_NAME = "MyDefaultRoute";
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: DEFAULT_ROUTE_NAME,
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
때 어떤 메소드를 주석 처리하고, 다른 메소드는 첫 번째 메소드를 완전히 주석 처리하고 두 번째 메소드는 작동하지만 두 메소드가 모두 구현되면 작동하지 않는 것처럼 작동합니다. 비어있는 웹 API 템플릿을 사용했습니다.
왜 이런 일이 발생했는지에 대한 생각은 훌륭합니다. 그래서 당신은 api/Video/GetVideoByTitle/x
또는 api/Video/GetVideoByID/x
You may want to read this, under Routing Variations > Routing by Action Name
당신이 GetVideoByTitle에서 "ID_STR"대신 "ID"와 같은 무언가를 시도하고 알려 할 수 있습니까? –
이것은 매개 변수의 다른 이름으로 만 작동한다고 생각하지 않습니다. 매개 변수의 수를 변경해도 도움이되지 않습니다. 두 경로를 구별하는 경로를 변경하는 것은 불가능합니다. 어쩌면 ActionAttributes를 조사하여 하나를 다른 것으로 표시하십시오. – Schwarzie2478
@ user3036757 사실상 하나의 '페이지'에 여러 개의 제출 버튼이 각각 다른 작업으로 진행되기를 원하십니까? –