zoukankan      html  css  js  c++  java
  • Asp.net MVC 中超链接的三个方法及比较

    在Asp.net WebForm开发中,我们通过a标签进行跳转时,通常的写法是:<a href="index.aspx">首页</a>,

    在Asp.net MVC中我们也可以这样写:<a href="/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="/Home/Index">首页</a>的地址为<a href="/Home/Index">首页</a>,否则会报错,一个可以修改,如果你的项目中有1000个跳转,那是不可能手动修改的。

    这个时候你可以用第二种方法就是Url.Action生成url地址,即:

    <a href="<%: Url.Action("Index","Home") %>">UrlHelper生成的url地址</a>

    这样不论你的路由规则如何变化,它是不会受影响的,它会自适应路由规则,还有第三种中也可以自适应规则,

    就是用UrlHelper生成url地址,即:

    @Html.ActionLink("首页","Index","Home")

     综上所看:

    第二,第三种方法可以屏蔽路由变化带来的影响!

  • 相关阅读:
    爬取网页图片
    python 猜数字游戏
    位移运算
    生成随机的名字
    不截半个汉字
    一致性hash的实现
    安装前端脚手架
    什么是快速排序?
    HTML5有趣的标签
    stopPropagation / stopImmediatePropagation
  • 原文地址:https://www.cnblogs.com/qk2014/p/4050158.html
Copyright © 2011-2022 走看看