5

根据提供的答案:

带有 Html.ActionLink 的绝对(外部)URL

我有以下 ActionLink:

<li>@Html.ActionLink("ExternalLink", "http://google.com")</li> 

但我仍然收到“找不到资源错误”,其中:

请求的网址:/Home/http:/google.com

将 /Home 标记到绝对路径上。

更新:我希望连接一个外部 URL(我自己的,在 Web 项目之外)并在控制器中连接一个 ActionResult .. 是不是因为我正在使用 HomeController,而我应该使用一个新的?

我究竟做错了什么?

任何帮助,非常感谢。

4

2 回答 2

8

你在这里不需要 Razor。只需使用一个标签。

<a href="http://google.com">Link to Google</a>

更新:

对于更复杂的场景,您可以编写一个简单的 HTML 辅助方法,如下所示:

public static class ExternalLinkHelper
{
    public static MvcHtmlString ExternalLink(this HtmlHelper htmlHelper, string linkText, string externalUrl)
    {
        TagBuilder tagBuilder = new TagBuilder("a");
        tagBuilder.Attributes["href"] = externalUrl;
        tagBuilder.InnerHtml = linkText;
        return new MvcHtmlString(tagBuilder.ToString());
    }
}

只需确保在视图中引用此类的命名空间即可。

@Html.ExternalLink("Link to Google", "http://google.com")
于 2013-03-22T17:45:32.840 回答
2

ActionLink不支持绝对网址。“行动”这个名字就说明了这一点。您要么需要将自己的扩展方法添加到 HtmlHelper,要么自己编写标记。

于 2013-03-22T17:44:41.343 回答