ASP.NET MVC Route with values before the controller and no trailing slash

后端 未结 1 585
死守一世寂寞
死守一世寂寞 2020-12-11 20:53

This is probably a simple question but I just can\'t get it to work.

I\'ve got this route specified in my RouteConfig

routes.MapRoute(
    name: \"De         


        
相关标签:
1条回答
  • 2020-12-11 21:34

    Problem is ASP.net 4.0 doesn't route URLs that ends with an extension to MVC. They do this in order to speed up requests to static files. See this link

    What you can do:

    1) Configure UrlRoutingModule to route all managed and un-managed requests (default is only route managed requests).

    Drawback: May be bad for performance.

    <system.webServer>
        <modules>
         <remove name ="UrlRoutingModule-4.0"/>
          <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="runtimeVersionv4.0" />
        </modules>
    <system.webServer>
    

    2) Configure to handle .com, .net. org etc extensions

    Drawback: Feels like a hack.

       <system.webServer>
           <handlers>
              <add name="UrlRoutingHandler"
               type="System.Web.Routing.UrlRoutingHandler, 
                     System.Web, Version=4.0.0.0, 
                     Culture=neutral, 
                     PublicKeyToken=b03f5f7f11d50a3a"
                     path="*.com"
                     verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"/>
    
    0 讨论(0)
提交回复
热议问题