为什么此代码不起作用?。我收到"ok",但我看不到视图1(视图1未加载)。我想通过prop1管理视图。如果prop1="1"的值加载视图1
希尔是我的控制器
[System.Web.Mvc.Route("Home/SubmitMyData/")]
[System.Web.Http.HttpPost]
public ActionResult SubmitMyData([FromBody]MyParamModel mydata)
{
if (mydata.Prop1.Equals("1"))
return View("veiw1");
else
return View("view2");
}
public class MyParamModel // #4
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
这是我的ajax调用
$('#Buttonv').click(function () {
var myData = {Prop1: "1", Prop2: ""}; // #1
$.ajax({
type: 'POST',
data: myData, // #2
url: '/Home/SubmitMyData',
})
.success(function (data) {
var output = "ok";
$('#lblmessage').html(output);
})
.error(function (xhr, ajaxoption, thrownError) {
$('#lblmessage').html("moshkelo" + xhr + "ajaxoption= " + ajaxoption + " throwerror=" + thrownError);
});
//return false;
});
如果您从控制器返回视图,则需要确保您实际使用的是POST的success
回调中的HTML内容:
.success(function (data) {
// data will contain your content
$('#lblmessage').html(data);
})
您以前使用过output
,它似乎没有在脚本中的任何位置定义。
此外,您可能需要检查返回的视图的名称,因为return View("veiw1");
似乎是一个打字错误,应该是return View("View1");
。
在javascript中,您忽略了服务器返回的HTML。尝试将其更改为…
.success(function (data) {
$('#lblmessage').html(data);
})
根据文档,success
方法的第一个参数是服务器返回的数据。