Asp.net 动作链接
如何打开一个链接到MVC外部的新窗口,并在打开时获取一些参数Asp.net 动作链接,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,如何打开一个链接到MVC外部的新窗口,并在打开时获取一些参数 @Html.ActionLink("SomeTextForLink", "wwww.google.com", null, new { querystring values}, new { target ="_blank"}) 我想打开类似于www.abc.com/contact.aspx?id=22的内容,这是MVC页面之外的内容 谢谢你你不能用ActionLink来做这件事。ActionLink仅用于指向应用程序内某个操作的链接
@Html.ActionLink("SomeTextForLink", "wwww.google.com", null, new { querystring values}, new { target ="_blank"})
我想打开类似于www.abc.com/contact.aspx?id=22
的内容,这是MVC页面之外的内容
谢谢你你不能用ActionLink来做这件事。ActionLink仅用于指向应用程序内某个操作的链接 你可以使用一个普通的链接
<a href="@string.Format("http://www.abc.com/contact.aspx?{0}", yourQueryString)" target="_blank">
Link Text
</a>
您不能使用ActionLink来实现这一点。ActionLink仅用于指向应用程序内某个操作的链接 你可以使用一个普通的链接
<a href="@string.Format("http://www.abc.com/contact.aspx?{0}", yourQueryString)" target="_blank">
Link Text
</a>
您可以为此编写自定义帮助程序:
public static class HtmlExtensions
{
public static IHtmlString Link(this HtmlHelper htmlHelper, string linkText, string baseUrl, object query, object htmlAttributes)
{
var anchor = new TagBuilder("a");
anchor.SetInnerText(linkText);
foreach (var item in new RouteValueDictionary(htmlAttributes))
{
anchor.Attributes[item.Key] = item.Value as string;
}
var urlBuilder = new UriBuilder(baseUrl);
var values = HttpUtility.ParseQueryString(string.Empty);
foreach (var item in new RouteValueDictionary(query))
{
values[item.Key] = item.Value as string;
}
urlBuilder.Query = values.ToString();
anchor.Attributes["href"] = urlBuilder.ToString();
return new HtmlString(anchor.ToString());
}
}
然后:
@Html.Link(
"SomeTextForLink",
"http://www.google.com",
new { param1 = "value1", param2 = "value2" },
new { target = "_blank" }
)
您可以为此编写自定义帮助程序:
public static class HtmlExtensions
{
public static IHtmlString Link(this HtmlHelper htmlHelper, string linkText, string baseUrl, object query, object htmlAttributes)
{
var anchor = new TagBuilder("a");
anchor.SetInnerText(linkText);
foreach (var item in new RouteValueDictionary(htmlAttributes))
{
anchor.Attributes[item.Key] = item.Value as string;
}
var urlBuilder = new UriBuilder(baseUrl);
var values = HttpUtility.ParseQueryString(string.Empty);
foreach (var item in new RouteValueDictionary(query))
{
values[item.Key] = item.Value as string;
}
urlBuilder.Query = values.ToString();
anchor.Attributes["href"] = urlBuilder.ToString();
return new HtmlString(anchor.ToString());
}
}
然后:
@Html.Link(
"SomeTextForLink",
"http://www.google.com",
new { param1 = "value1", param2 = "value2" },
new { target = "_blank" }
)
回答得很好。遵循我的黄金法则“尽可能多的HTML在HTML中”。很好的答案。遵循我的黄金法则“在HTML中尽可能多的HTML”。非常感谢,通用方式非常感谢,通用方式