【发布时间】:2013-07-11 15:16:44
【问题描述】:
字符串“con”有什么问题?
好的,我的api路由配置比较没意思:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
LocationController 有以下方法:
public List<LocationViewModel> Get(string id)
{
return _ds.SearchLocations(id);
}
一切正常,除了当我尝试像这样获取资源时遇到 HTTP 404 错误:
/api/location/con
在这种情况下,方法不会被命中。奇怪的是,如果我将“con”以外的任何其他字符串设置为 id 参数,控制器方法就会被命中并正常工作!
当我使用 Cassini 在 localhost 上调试我的应用程序时发生这种情况(与 IIS Express 相同)。我的项目目录中没有名为“con”的文件。处理应用程序错误事件后,IntelliTrace 显示 HttpException 并显示消息:“无法映射路径 '/api/location/con'”...
有什么线索吗?这是一个已知的错误吗?
提前致谢!
【问题讨论】:
标签: asp.net-mvc asp.net-web-api asp.net-mvc-routing