ASP.NET MVC Url Route支持(点)

Cin*_*dro 36 asp.net iis-7 url-routing global-asax asp.net-mvc-3

我希望你能帮我解决下面的问题.

我在IIS7上使用ASP.NET MVC 3,并希望我的应用程序支持带点的用户名.

示例:http://localhost/john.lee

这就是我的Global.asax的样子:(http:// localhost / {username})

routes.MapRoute(
    "UserList",
    "{username}",
    new { controller = "Home", action = "ListAll" }
);
Run Code Online (Sandbox Code Playgroud)

当我访问其他页面时,应用程序工作,例如http://localhost/john.lee/details等.

但主用户页面不起作用,我希望该应用程序像支持http://www.facebook.com/john.lee的 Facebook一样工作.

我使用下面的代码,它根本不适合我:

<httpRuntime relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)

我能够使用下面的代码并让应用程序接受点,但我绝对不希望使用下面的代码有很多不同的原因,请告诉我有一种方法来克服这个问题.

<modules runAllManagedModulesForAllRequests="false" />
Run Code Online (Sandbox Code Playgroud)

小智 59

将UrlRoutingHandler添加到web.config.这需要你的网址更具体一些(fe /Users/john.lee).这会强制以/ Users开头的每个url被视为MVC url:

<system.webServer>    
  <handlers>      
    <add name="UrlRoutingHandler" 
         type="System.Web.Routing.UrlRoutingHandler, 
               System.Web, Version=4.0.0.0, 
               Culture=neutral, 
               PublicKeyToken=b03f5f7f11d50a3a" 
         path="/Users/*" 
         verb="GET"/>      
  </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

  • 我真的不明白这是怎么回事; `无法创建一个抽象类.http://pastebin.com/vuQ2WnWZ (4认同)

Sat*_*ngh 2

我面临着同样的问题。所以对我来说最好的解决方案是:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"></modules>
<system.webServer>
Run Code Online (Sandbox Code Playgroud)