Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 动作链接_Asp.net_Asp.net Mvc 3 - Fatal编程技术网

Asp.net 动作链接

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仅用于指向应用程序内某个操作的链接

如何打开一个链接到MVC外部的新窗口,并在打开时获取一些参数

@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”。非常感谢,通用方式非常感谢,通用方式