我也想调用view1和view2方法。但它不起作用。方法" SubmitMyData"正常工作并返回我的ajax调用的视图。运行后我预计执行(例如)view2。在这个例子中,我必须看到view2
[System.Web.Mvc.Route("Home/SubmitMyData/")]
[System.Web.Http.HttpPost]
public ActionResult SubmitMyData([FromBody]MyParamModel mydata)
{
if (mydata.Prop1.Equals("1"))
{
view1();
return View("view1");
}
else
{
view2();
return View("view2");
}
}
这里是视图方法的主体
public ActionResult view1()
{
ViewBag.Title = "view1";
return View();
}
public ActionResult view2()
{
ViewBag.Title = "view2";
return View();
}
这是我的ajax调用(如果有必要的话)
$('#Buttonv').click(function () {
var myData = {Prop1: "10", Prop2: ""};
$.ajax({
type: 'POST',
data: myData,
url: '/Home/SubmitMyData',
})
.success(function (data) {
$('#lblmessage').html(data);
})
.error(function (xhr, ajaxoption, thrownError) {
$('#lblmessage').html("moshkelo" + xhr + "ajaxoption= " + ajaxoption + " throwerror=" + thrownError);
})
//return false;
});
答案 0 :(得分:0)
将代码view2();
替换为return RedirectToAction("view2");
您需要重定向到某个操作,而不仅仅是像方法一样执行它。
所以你的代码必须在下面
public ActionResult SubmitMyData([FromBody]MyParamModel mydata)
{
if (mydata.Prop1.Equals("1"))
{
return RedirectToAction("view1");
//return View("view1"); // not required
}
else
{
return RedirectToAction("view2");
// return View("view2"); // not required
}
}