0

如果有人可以提供建议,我将不胜感激。我有 2 个视图(不是部分视图),我想target = "_blank"一次返回空白页( )。我的提交表单如下所示:

 @using (Html.BeginForm("Action1", "Controller1",  new { target = "_blank"})
{
//model data

<input type="submit" value = "Go" id="btn"/>
}

在我的控制器中,我有 2 个 ActionResults:

public ActionResult Action1(MyModel model)
{
return View(model);
}

public ActionResult Action2(string year)
{
ViewBag.year = year;
return View();
}

所以我想同时调用两者Action1 and Action2Action1接受模型作为参数并Action2接受一些也可以从中获取的字符串MyModel。有没有办法做到这一点?我试图Action2在提交按钮单击时通过 jquery 调用,但它不能正常工作,因为我想在新选项卡中显示视图。

提前致谢!

4

1 回答 1

0

你应该能够像这样做你想做的事。

不过,创建一个新操作可能会更好,该操作在单个 JSON 对象的不同属性中返回两个视图 - 因为这是进行两次调用。

$("#Form").on("submit", function() {
    $.ajax({
        url: "/Controller/Action1",
        data: $("#Form").serialize(),
        success: function(response) {
            // do what you need to do with the response here
        }
    });

    $.ajax({
        url: "/Controller/Action2",
        data: { string : $("#Form").find("input#YOUR_INPUT_NAME").val() },
        success: function(response) {
            // do what you need to do with the response here
        }
    });
}

编辑:

假设 target="_blank" 正在工作,您应该能够创建第二个隐藏表单并在提交第一个表单时提交它。

$("#Form").on("submit", function() {
    var i = $("#Form input#INPUT_ID_HERE").val()
    $("#Form2 input").val(i);
    $("#Form2").submit();        
}
于 2013-10-07T08:38:00.337 回答