Asp.net

ASP.NET MVC Url Route 支持(點)

  • February 14, 2012

我希望你能幫助我解決以下問題。

我在 IIS7 上使用 ASP.NET MVC 3,並希望我的應用程序支持帶點的使用者名。

範例:<http://localhost/john.lee>

這就是我的 Global.asax 的樣子:( <http://localhost/> {username})

routes.MapRoute(
   "UserList",
   "{username}",
   new { controller = "Home", action = "ListAll" }
);

當我訪問<http://localhost/john.lee/details>等其他頁面時,這些應用程序可以工作。

但是主使用者頁面不起作用,我希望該應用程序能夠像支持<http://www.facebook.com/john.lee>的 Facebook 一樣工作。

我使用了下面的程式碼,它根本不適合我:

&lt;httpRuntime relaxedUrlToFileSystemMapping="true" /&gt;

我能夠使用下面的程式碼並讓應用程序接受點,但由於許多不同的原因我絕對不想使用下面的程式碼,請告訴我有一種方法可以解決這個問題。

&lt;modules runAllManagedModulesForAllRequests="false" /&gt;

我面臨著同樣的問題。所以對我來說最好的解決方案是:

&lt;system.webServer&gt;
   &lt;modules runAllManagedModulesForAllRequests="true"&gt;&lt;/modules&gt;
&lt;system.webServer&gt;

將 UrlRoutingHandler 添加到 web.config。但是,這需要您的網址更加具體(fe /Users/john.lee)。這會強制以 /Users 開頭的每個 url 都被視為 MVC url:

&lt;system.webServer&gt;    
 &lt;handlers&gt;      
   &lt;add name="UrlRoutingHandler" 
        type="System.Web.Routing.UrlRoutingHandler, 
              System.Web, Version=4.0.0.0, 
              Culture=neutral, 
              PublicKeyToken=b03f5f7f11d50a3a" 
        path="/Users/*" 
        verb="GET"/&gt;      
 &lt;/handlers&gt;
&lt;/system.webServer&gt;

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