關於路由
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 }//默認的路由不要刪除,放置在最下面
);