2

我对来自 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...})
        }

调用返回的 Action 并加载 Partial View。但是,我希望在新的浏览器选项卡上打开此页面。

我希望我可以从 ajax 调用中做一些简单的事情来实现这一点,但我知道生活通常并不那么容易,所以对此的任何帮助表示赞赏!

4

3 回答 3

0

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

     window.open(
    "Controller/Action?args=" + encodeURIComponent(val),
    "_blank");
于 2018-04-18T06:57:01.177 回答
0
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"})
于 2018-04-18T06:37:11.677 回答
0

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

window.open(data);

这里

HIH

于 2018-04-17T21:23:24.137 回答