asp.net mvc路由重寫及偽靜態的粗淺理解
阿新 • • 發佈:2019-01-01
關於路由
ASP.NET MVC中一個重要的內容就是路由,關於路由簡單的理解就是瀏覽器提出請求,然後通過路由表將請求匹配到相應的MVC控制器!
第一種方式可以在web.config 裡面修改
偽靜態配置:
使用靜態路由,需要在配置檔案新增設定
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
</modules >
</system.webServer>
下面是一個偽靜態路由規則,新增到configuration節點下
ignoreCase //大小寫敏感
appendQueryString=”false” //去掉url?號帶引數部分
<system.webServer>
<rewrite>
<rules>
<rule name="login">
<match url="^myblog-login.html$" ignoreCase="false" />
<action type="Rewrite" url="/Accuont/login" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
可以用正則表示式對url引數的型別做出限定
<rule name="login">
<match url="^myblog-login-(.*)-(.\d).html$" ignoreCase="false" />
<action type="Rewrite" url="/Accuont/login?title={R:1}&id={R:2}" appendQueryString="false" />
</rule>
第二種方式可以在RouteConfig.cs 裡面修改
routes.MapRoute(
name: "Login",//路由的名稱
url: "login.html",//路由的地址
defaults: new { controller = "UserRelevant", action = "Login" }//指向的檢視與控制器
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Index", action = "Home", id = UrlParameter.Optional }//預設的路由不要刪除,放置在最下面
);