繁体   English   中英

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

[英]open a new tab using MVC Razor @Url.Action

我正在尝试找出如何在单击链接时打开选项卡。

这是我要打开的链接,我已将其设置为此,但是如您所见,我添加了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的想法。

//新

这是我用来打开链接的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);
            },
        });
    });
});

如果您要在data-*属性中分配此属性(并且唯一可以修改的就是URI,则您无能为力,无法完成该行为。这需要在访问data-url的代码段中进行更改(并且如何处理)。

如果您需要在新标签页/窗口中打开URL,则AJAX不是正确的方法。 您仍然可以通过javascript打开新的标签/窗口。

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

您可以使用这种方式:

    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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM