使用MVC Razor @ Url.Action打开一个新标签

时间:2015-02-26 15:42:21

标签: asp.net-mvc asp.net-mvc-4 razor

我试图找出当我点击链接时如何打开标签。

这是我尝试打开的链接,我已将其设置为此,但正如您所见,我添加了target =“_ blank”,但未在新标签中打开。

  <div data-callno='@parts.Call_Num' data-url="@Url.Action("GetCallInfo", "CallHandling" , new {target = "_blank"})">
  <div class="callViewSubmit toolbarIcon"></div>
  Test </div>

这会在同一页面上打开,在查看谷歌后我注意到我使用的是URL.ACTION,而不是HTML.ACTIONLINK。

作为测试我在页面上尝试了这个,并且它在新标签中打开了:

    @Html.ActionLink("New report", "New", "Report", null, new {target = "_blank"})

如何使用Url.Action方式在新标签页中打开我的div。

  

//新

这是我用来打开链接的javascript,我能否在javascript而不是url.action中打开链接

    $(document).ready(function () {
    $('.callViewSubmit').click(function () {
        $.ajax({
            type: "GET",
            url: $(this).parent().data("url"),
            data: { callNumber: $(this).parent().data("callno") },
            success: function (data) {
                $("#CallDetail").html(data);
            },
        });
    });
});

3 个答案:

答案 0 :(得分:1)

如果你在data-*属性中分配它(并且你只能修改的是URI,那么你无法做任何事情来完成这个行为。这需要改变在访问data-url的代码段中(以及它如何处理它)。

答案 1 :(得分:1)

如果您需要在新的标签/窗口中打开URL,那么AJAX就不是正确的方法。你仍然可以从javascript打开一个新的标签/窗口。

$(document).ready(function () {
    $('.callViewSubmit').click(function () {
        window.open($(this).parent().data("url"));
    });
});

答案 2 :(得分:0)

您可以这样使用:

    Url.RouteUrl("routeName",
new
{
  controller = "controllerName",
  action = "ActionName",
  callNumber: "Value"
});

然后创建链接:

var link =
                                        "<a data-original-title=\"title\" target='_top' data-toggle=\"tooltip\" data-placement=\"top\" " +
                                        "href=\"" + viewLink +
                                        "\" data-ajax=\"true\" data-ajax-method=\"GET\" data-ajax-mode=\"replace\" " +
                                        "data-ajax-update=\"#CallDetail\" >" + This is link;