首页 > 代码库 > Asp.net MVC 用UrlHelper生成url地址的优势
Asp.net MVC 用UrlHelper生成url地址的优势
在Asp.net WebForm开发中,我们通过a标签进行跳转时,通常的写法是:<a href="http://www.mamicode.com/index.aspx">首页</a>,
在Asp.net MVC中我们也可以这样写:<a href="http://www.mamicode.com/Home/Index">首页</a>,这就是我要讲的MVC中超链接的第一种方法。
Asp.net MVC的请求是通过路由的规则来控制的:系统默认规则如下代码
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
规则是可以变的,当路由规则变化后,比如如下:
routes.MapRoute( name: "Default", url: "{controller}-{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
把{controller}/{action}中的斜线变成{controller}-{action}横杠,你也要修改<a href="http://www.mamicode.com/Home/Index">首页</a>的地址为<a href="http://www.mamicode.com/Home/Index">首页</a>,否则会报错,一个可以修改,如果你的项目中有1000个跳转,那是不可能手动修改的。
这个时候你可以用第二种方法就是Url.Action生成url地址,即:
<a href=http://www.mamicode.com/"<%: Url.Action("Index","Home") %>">UrlHelper生成的url地址</a>
这样不论你的路由规则如何变化,它是不会受影响的,它会自适应路由规则,还有第三种中也可以自适应规则,
就是用UrlHelper生成url地址,即:
@Html.ActionLink("首页","Index","Home")
综上所看:
第二,第三种方法可以屏蔽路由变化带来的影响!
Asp.net MVC 用UrlHelper生成url地址的优势
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。