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圖片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章