指定routename时,将target =“_ blank”添加到RouteLink

时间:2016-05-17 09:02:22

标签: c# asp.net-mvc

我似乎无法在下面找到问题的答案。

我正在尝试将RouteLink方法与target="_blank"属性一起使用。

我尝试了以下内容,但它没有给出预期的输出。

@Html.RouteLink("Display text","My_Route_Name",new{Id="AGuid", target="_blank"}

实际输出

<a href="/my_route_url/AGuid?target=_blank">Display text</a>

预期输出

<a href="/my_route_url/AGuid" target="_blank">Display text</a>

任何想法,建议?

PS。搜索堆栈溢出并没有带来任何进展。

2 个答案:

答案 0 :(得分:3)

您可以使用如下所示

@Html.RouteLink("Display text", "My_Route_Name", new { Id = "AGuid" }, new { target = "_blank" });

答案 1 :(得分:2)

尝试使用htmlAttributes:并指定null作为第3个参数值,因为在第3个参数上它指的是Object RouteValues而不是Object htmlAttributes

<强> PARAMS

public static MvcHtmlString RouteLink(
    this HtmlHelper htmlHelper,
    string linkText,
    Object routeValues, //this is getting targeted in your case
    Object htmlAttributes
)

<强>更改

@Html.RouteLink("Display text","My_Route_Name",new { Id = "AGuid" }, htmlAttributes: new {target="_blank"})

或者

@Html.RouteLink("Display text","My_Route_Name",new {Id="AGuid"},new {target="_blank"})

<强> Source