如果有人可以提供建议,我会很感激。我有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 Action2
。 Action1
接受模型作为参数,Action2
接受一些可以从MyModel
获取的字符串。
有没有办法做到这一点?
我尝试通过jquery在提交按钮单击时调用Action2
,但它无法正常工作,因为我想在新选项卡中显示视图。
提前致谢!
答案 0 :(得分: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();
}