我看不到视图2

时间:2016-04-13 11:18:07

标签: ajax asp.net-mvc

我也想调用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;
});

1 个答案:

答案 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
    }            
}