问题 ASP.NET MVC 4 Web API无法映射包含字符串“con”的路径?


字符串“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'”...

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

提前致谢!


11092
2017-07-13 00:16


起源



答案:


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

<httpRuntime relaxedUrlToFileSystemMapping="true" />

15
2017-07-13 07:26



啊,显然一些不死的僵尸仍在困扰着我们...... :)感谢你的回应! - Milos Mrdovic
什么是实际的F?谢谢你在互联网上随机陌生! - AndreasKnudsen
发生这种情况时,我以为我疯了。谢谢你! - Krummelz


答案:


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

<httpRuntime relaxedUrlToFileSystemMapping="true" />

15
2017-07-13 07:26



啊,显然一些不死的僵尸仍在困扰着我们...... :)感谢你的回应! - Milos Mrdovic
什么是实际的F?谢谢你在互联网上随机陌生! - AndreasKnudsen
发生这种情况时,我以为我疯了。谢谢你! - Krummelz