使用 MVC Razor 打开一个新选项卡@Url.Action

open a new tab using MVC Razor @Url.Action

我正在研究如何在单击 link 时打开选项卡。

这是我的 link,它正在尝试打开,我已将其设置为这样,但如您所见,我添加了 target = "_blank",它不会在新选项卡中打开。

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

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

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

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

关于如何使用 Url.Action 方式在新选项卡中打开我的 div 的任何想法。

//New

这是我用来打开 link 的 javascript,我可以在 javascript 中打开 link 而不是 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);
            },
        });
    });
});

如果您在 data-* 属性中分配它(并且您唯一可以修改的是 URI,则您无法执行任何操作来完成该行为。这需要在访问 data-url 的代码(及其处理方式)。

如果您需要在新的 tab/window 中打开 URL,那么 AJAX 不是正确的方法。您仍然可以从 javascript.

打开一个新的 tab/window
$(document).ready(function () {
    $('.callViewSubmit').click(function () {
        window.open($(this).parent().data("url"));
    });
});

你可以这样使用:

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

然后创建link:

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;