【发布时间】:2016-07-03 19:12:52
【问题描述】:
我有一个小型 ASP.NET WebAPI 应用程序,我设置的唯一路由如下:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{*furtherpath}"
);
我有以下控制器:
public class FoldersController : ApiController {
public string GetThis(DateTime queryStringDate) {
return "abc";
}
public bool GetThat(string furtherpath) {
return "xyz";
}
}
我在尝试发出此请求时收到 500 内部服务器错误,因为它匹配这两个方法操作:
GET http://[server]/api/folders?queryStringDate=2015-02-11%2000:00:00
现在我认为这将明确匹配 GetThis,因为请求的 URL 不包含末尾的斜杠,它将分隔 {controller} 和 {*furtherpath},并且 furtherpath 未标记为可选范围。为什么这个请求对 WebAPI 有歧义,我如何告诉 WebAPI folders 后面没有斜线意味着这个请求应该匹配 GetThis?
【问题讨论】:
标签: c# asp.net asp.net-web-api routing