我正在使用ASP .NET MVC Beta,當我使用此URL末尾帶有“點”的URL時,出現HTTP 404(找不到資源)錯誤:http:// localhost:81 / Title / Edit / Code1。如果刪除末尾的點或中間的某點,則不會出現錯誤。我嘗試調試,但是在MvcHandler中的ProcessRequest之前,我從“ System.Web.CachedPathData.GetConfigPathData(String configPath)”中收到錯誤。網址末尾是否不允許使用“點”?還是有辦法修復路由定義以處理此URL?例如:我有一個名為Detail1 [Id(integer),Code(string),Description(string)]的表,該表通過其ID列與Master1具有FK關系。每當我選擇Master1的記錄時,我也會選擇它的Detail1記錄以獲取它的Code字段。為了不每次都進行此聯接(因為通常不僅只有一個細節,而且有多個細節),所以我選擇不使用Id列,而是制作Detail1的代碼PK。但是,當我擺脫Id并將Code用作PK時,我的路線也開始與Code字段一起使用,例如:Detail1 \ Edit \ Code1該代碼中可以包含任何內容,也可以包含DOT。在某些情況下,我可以在最后禁止DOT,但有時確實很有意義。而且我還看過這篇文章,路線可能非常靈活,所以我認為我的想法并不奇怪。所以這就是為什么我做一些非標準的事情。有什么建議么?還有為什么在網址末尾有DOT太奇怪了?
3 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
如果使用的是.NET 4.0,則可以在web.config的system.web部分中設置此標志,并且將允許該標志:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
我已經對其進行了測試,并且可以正常工作。Haack對此有一個解釋。

米脂
TA貢獻1836條經驗 獲得超3個贊
好吧,在.NET 4.5中,我通過在網址末尾添加“ /”來解決此問題。
因此,在您的情況下,它將是“ http:// localhost:81 / Title / Edit / Code1。/”。這是我所做的唯一一件事,無需添加httpRuntime設置。
- 3 回答
- 0 關注
- 546 瀏覽
添加回答
舉報
0/150
提交
取消