我有一个.NET WebApi,其[Route("file/{fileId}")]
问题是以下Uri与此路线匹配的原因:
http://localhost:52052/file/Info?fileId=4eb335ac-dc6b-4fd9-a6e1-1ca83d931b77
默认路线为:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { action = "get", id = RouteParameter.Optional }
);
答案 0 :(得分:0)
您可以在VirtualBox
here中了解路线,有一个关于路线约束的部分,并附有很好的示例。
以下Uri为何与此路线匹配:
答案取决于你的行动方法的样子。
例如,如果是这样的话:
Web API 2
然后[Route("file/{fileId}")]
public HttpResponseMessage Get(string fileId)
将匹配此路线,/file/Info?fileId=4eb335ac-dc6b-4fd9-a6e1-1ca83d931b77
的值将等于fileId
如果是这样的话:
"Info"
然后[Route("file/{fileId}")]
public HttpResponseMessage Get(Guid fileId)
与此路线不匹配,但/file/Info?fileId=4eb335ac-dc6b-4fd9-a6e1-1ca83d931b77
将匹配