Asp.net-Mvc-3

ASP.Net MVC3 路由保留字?

  • April 14, 2014

我有一個定義了標準路由的 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 中使用這些詞。

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