使用带有绝对路径的ActionLink

Joe*_*Net 1 c# asp.net asp.net-mvc-4

根据提供的答案:

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

我有以下ActionLink:

<li>@Html.ActionLink("ExternalLink", "http://google.com")</li> 
Run Code Online (Sandbox Code Playgroud)

但我仍然得到'资源无法找到错误',:

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

这是标记/ Home到绝对路径.

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

我究竟做错了什么?

任何帮助,非常感谢.

Ufu*_*arı 7

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

<a href="http://google.com">Link to Google</a>
Run Code Online (Sandbox Code Playgroud)

更新:

对于更复杂的场景,您可以编写一个简单的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());
    }
}
Run Code Online (Sandbox Code Playgroud)

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

@Html.ExternalLink("Link to Google", "http://google.com")
Run Code Online (Sandbox Code Playgroud)