• 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")

     综上所看:

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

  • 相关阅读:
    libubox组件(1)——usock
    linux 块设备驱动(五)——块设备应用层的操作
    linux 块设备驱动(四)——简单的sbull实例
    linux 块设备驱动 (三)块设备驱动开发
    linux 块设备驱动(二)——块设备数据结构
    CUDA:零拷贝主机内存
    《无法触碰》
    CUDA: 流
    CUDA: 原子操作
    CUDA:纹理内存
  • 原文地址:https://www.cnblogs.com/qk2014/p/4050158.html
Copyright © 2020-2023  润新知