Asp.net mvc 4 RouteLink在MVC4中不起作用

Asp.net mvc 4 RouteLink在MVC4中不起作用,asp.net-mvc-4,Asp.net Mvc 4,在我的应用程序中,我允许用户重定向到htttps://www.google.co.in 从我的申请中 为此,我使用了RouteLink。我知道我们也可以通过actionLink来实现 代码: 生成的HTML <a style="color:red" href="https://www.google.co.in/Home/RouteLink">Google</a> 所以我的问题是为什么我会得到上面这样的锚标签?若RouteLink不允许重定向到另一个域,那个么为

在我的应用程序中,我允许用户重定向到htttps://www.google.co.in 从我的申请中

为此,我使用了RouteLink。我知道我们也可以通过actionLink来实现

代码:

生成的HTML

     <a style="color:red" href="https://www.google.co.in/Home/RouteLink">Google</a>
所以我的问题是为什么我会得到上面这样的锚标签?若RouteLink不允许重定向到另一个域,那个么为什么它重载了接受主机名和协议的方法呢

所以我的问题是为什么我会得到上面这样的锚标签

因为你在RouteLink的第三个和第四个参数上特别这么说

如果RouteLink不允许重定向到另一个域,为什么不允许 是否重载了接受主机名和协议的方法

因为那不是你用它的目的
RouteLink
及其姐妹方法
ActionLink
用于在应用程序中生成有效(或安全)链接


如果您想链接到外部应用程序/网站,那么只需使用锚定标记。

当常规超链接(
a
)应该做什么时,
RouteLink有什么用?是的,我也可以使用简单的锚定标记来做,也可以使用@Html.ActionLink()来做但是为什么@html.RouteLink有一个重载的方法来接受主机名和协议呢?为什么我不能使用RouteLink重定向到另一个域?我不知道主机名背后的原因。然而,RouteLink文档说它为一个虚拟路径生成链接。所以你的意思是我不能使用RouteLink?到外部站点,你不能。为什么它有像@Html.RouteLink这样的重载方法(linkText、routeName、protocol、hostName、fragment、routeValue、htmlAttributes),这并不是RouteLink的真正用途。你读过这个博客吗?RouteLink在您希望发动机拾取特定路线的情况下非常有用。因此,它可以在您的应用程序上工作,而不是在某些外部应用程序上。顺便说一句,如果您想喜欢并且不想直接键入
a
标记,那么就构建您自己的扩展方法。
     <a style="color:red" href="https://www.google.co.in/Home/RouteLink">Google</a>
public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
              name: "RouteLink",
              url: "Home/RouteLink",
              defaults: new { Controller = "Home", action = "RouteLink" });  

         routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id =   
             UrlParameter.Optional }
        );

     }