为什么这段代码不起作用?我收到" ok"但我看不到view1(view1未加载)。我想通过prop1管理视图。如果prop1的值=" 1"加载view1
Hier是我的控制者
[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;
});
答案 0 :(得分:0)
在您的javascript中,您忽略了服务器返回的HTML。尝试将其更改为...
.success(function (data) {
$('#lblmessage').html(data);
})
根据documentation,success
方法的第一个参数是服务器返回的数据。
答案 1 :(得分:0)
如果您从Controller返回视图,则需要确保在POST的success
回调中实际使用HTML内容:
.success(function (data) {
// data will contain your content
$('#lblmessage').html(data);
})
您之前使用的是output
,它似乎没有在您的脚本中的任何位置定义。
此外,您可能需要检查要返回的视图的名称,因为return View("veiw1");
似乎应该是return View("View1");
的拼写错误。