내 웹 프로젝트에 AttributeRouting 및 WebApi를 구현했습니다. 그리고 http://localhost/apis/test?adminId=yyy
과 같은 URL을 GetSomeInfo
으로 연결하려고합니다. 하지만 몇 가지 문제가 발생하면 URL http://localhost/apis/test
과 http://localhost/apis/test?adminId=yyy
이 모두 GetEntity
으로 연결됩니다. 그것은 매개 변수 adminId
을 인식하지 못하는 것 같아요, 그것은 URL에 매개 변수가 없다고 생각합니다. 그래서 그것은 GetEntity
액션으로 바뀝니다. 누구든지 나를 도울 수 있습니까? 감사.WebAPI URL 일치 문제
내가 지금까지 한 것은 아래처럼 보입니다. 작동하지 않습니다.
[RoutePrefix("apis/test")]
public class SampleController : ApiController
{
[HttpGet]
[GET("")]
public string GetEntity([FromUri]string name = null, [FromUri]string id = null)
{
....
}
[HttpGet]
[GET("")]
public string GetSomeInfo([FromUri]string adminId)
{
....
}
}
편집은
global.asax
의 노선도 코드는 다음과 같습니다. 그리고 나는 http://localhost/api/Sample?adminId=2BD48CF9-95EB-48D2-A1B2-1AFA273E586D
이라는 URL이 GetSomeInfo
액션으로 라우팅 될 수 있음을 발견했습니다. 임의의 매개 변수없이 URL http://localhost/api/Sample
은 GetEntity
으로 연결됩니다. 그게 내가 원하는거야. 내 질문에 RoutePrefix
및 FromUri
작동하지 않는 이유는 무엇입니까?
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Login", id = UrlParameter.Optional }
);
문제점은 무엇입니까? 오류가 있습니까? – k0stya
@ k0stya 무엇인가를 잘못해서 죄송합니다. 내 게시물을 업데이트했습니다. –