【问题标题】:Ajax Success to a new tab - MVCAjax 成功到一个新选项卡 - MVC
【发布时间】:2018-09-27 23:36:42
【问题描述】:

对于来自 ajax 调用的 MVC 回发,我仍然有点新鲜,但我会展示我所拥有的(外行),我希望有人能指出我在新的浏览器选项卡中打开响应的方向。

我在下面的 sourceURL 中传递我的 MVC 控制器和操作:

$j.ajax({
          url: sourceURL,
          cache: false,
          type: 'get',
          success: function (data, statusText, jqXHR) {
              // Do stuff here
          }
});

这将我带到我的控制器操作:

        public ActionResult Edit(bool isForPartial = false, int actionId = 0, int objectId = 0, int parentObjectId = 0, string parentObjectType = "", bool fullView = false)
        {
           // Do Stuff Here aswell
           return RedirectToAction(actionName, controllerName, new {params...})
        }

调用返回的操作并加载部分视图。但是,我希望在新的浏览器选项卡上打开此页面。

我希望通过 ajax 调用可以做一些简单的事情来实现这一点,但我知道生活通常并不那么容易,因此感谢您提供任何帮助!

【问题讨论】:

  • 你重定向到的这个actionName...是返回一些部分视图还是什么?
  • 好问题....经过一些复杂的处理后,它终于可以返回部分视图。

标签: jquery ajax asp.net-mvc browser-tab


【解决方案1】:

没有与 asp.net 合作,所以不确定RedirectToAction(actionName, controllerName, new {params...}) 返回什么,但如果您需要打开一个带有服务器响应的新选项卡,您可以返回那个控制器操作中的新 url 并通过成功函数中的数据参数在 ajax 中获取它,您可以这样做:

window.open(data);

here

【讨论】:

    【解决方案2】:
    you can call action method something like below
    <a href="@Url.Action("Action", "Controller")" target="_blank">Link Text</a>
    @Html.ActionLink("linkText", "Action", new {controller="Controller"}, new {target="_blank"})
    

    【讨论】:

      【解决方案3】:

      在您的 ajax 调用成功时,使用此代码打开新窗口并在 mvc 控制器中执行您的工作

           window.open(
          "Controller/Action?args=" + encodeURIComponent(val),
          "_blank");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-18
        • 2012-12-08
        • 1970-01-01
        • 1970-01-01
        • 2015-04-29
        • 2018-08-29
        • 1970-01-01
        相关资源
        最近更新 更多