根据提供的答案:
Absolute (external) URLs with Html.ActionLink
我有以下ActionLink:
<li>@Html.ActionLink("ExternalLink", "http://google.com")</li>
但我仍然得到'资源无法找到错误',其中包含:
请求的网址:/Home/http:/ google.com
将标记/ Home标记到绝对路径上。
更新:我希望连接一个外部URL(我自己的,在Web项目之外)并在控制器中连接一个ActionResult ..啊,是因为我正在使用HomeController,当我应该使用一个新的?
我做错了什么?
任何帮助,非常感谢。
乔
答案 0 :(得分:7)
你不需要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")
答案 1 :(得分:1)
ActionLink
不支持绝对网址。 “行动”这个名字让这个消失了。您需要将自己的扩展方法添加到HtmlHelper或自己编写标记。