Asp.net-Mvc-3
ASP.Net MVC3 路由保留字?
我有一個定義了標準路由的 ASP.Net MVC 應用程序。該應用程序為我們的數據庫編輯元數據。網址方案是:
http://localhost/tables/Edit/[Name of Table Here]這將呼叫控制器
edit上的函式tables並將表的名稱作為參數傳入id。除了一個名為con. 以下 URL 會導致 404:http://localhost/tables/Edit/con我唯一能想到的是,它
con必須是某種與 MVC 路由相關的保留字。有誰知道是否是這種情況以及是否還有其他保留字要避免?
是的,
con是保留字,因此不能放在 MVC 路由中。這是一篇描述解決方法的部落格文章:http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx
另一篇文章詳細說明了保留字背後的原因:
http://bitquabit.com/post/zombie-operating-systems-and-aspnet-mvc/
CON 是保留字,如 COM1、COM2、COM3、COM4、LPT1、LPT2、AUX、PRN、NUL。
我在使用 ajax 請求時也遇到了這個問題。我通過將“-”字元放在參數的開頭來解決,然後在程式碼隱藏中替換它。
但這是一個愚蠢的解決方案,您只需添加即可輕鬆解決此問題
<system.web> <httpRuntime relaxedUrlToFileSystemMapping="true"/> ...... </system.web>到您的 Web.config 文件中,您可以安全地在 url 中使用這些詞。