Asp.net-Mvc

ASP.NET MVC 4 Web API 無法映射包含字元串“con”的路徑?

  • July 13, 2013

字元串“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’”…

有什麼線索嗎?這是一個已知的錯誤?

提前致謝!

URL 中不允許使用某些關鍵字,CON 就是其中之一。看到這個<system.web>解決方法是在您的 Web.config中包含以下內容。

<httpRuntime relaxedUrlToFileSystemMapping="true" />

引用自:https://stackoverflow.com/questions/17625764