您的位置:首页 > 编程语言 > ASP

asp.net mvc路由重写及伪静态的粗浅理解

2017-05-16 23:37 423 查看
关于路由

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp.net mvc url