13

字符串“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/位置/con

在这种情况下,该方法不会被命中。奇怪的是,如果我将“con”以外的任何其他字符串设置为 id 参数,控制器方法就会被命中并正常工作!

当我使用 Cassini 在 localhost 上调试我的应用程序时发生这种情况(与 IIS Express 相同)。我的项目目录中没有名为“con”的文件。处理应用程序错误事件后,IntelliTrace 显示 HttpException 并显示消息:“无法映射路径 '/api/location/con'”...

有什么线索吗?这是一个已知的错误?

提前致谢!

4

1 回答 1

20

URL 中不允许使用某些关键字,CON 就是其中之一。看到这个<system.web>解决方法是在您的 Web.config中包含以下内容。

<httpRuntime relaxedUrlToFileSystemMapping="true" />
于 2013-07-13T07:26:25.023 回答