1. 程式人生 > >asp.net mvc路由重寫及偽靜態的粗淺理解

asp.net mvc路由重寫及偽靜態的粗淺理解

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

偽靜態的url圖片