我正在尝试创建一个模式,告诉用户他们的提交已成功提交。这工作得相当好,但唯一的问题是我必须声明我的每个属性并为其赋值,然后在Json方法中我接受所有这些参数然后用它们做一些事情。有没有办法用ViewModel做到这一点?或者任何其他方式,这可以使用ViewModel完成?
控制器:
public Json Send(string var1, string var2)
{
...
if(valid)
return new Json(true, JsonRequestBehavior.AllowGet);
else
return new Json(false, JsonRequestBehavior.AllowGet);
}
的javascript:
function submitData() {
$.ajax({
url: "/Report/Send",
type: "POST",
dataType: "json",
data: { var1 = Model.var1, var2 = Model.var2... },
success: function (data) {
if(data) {
showDialog();
}
else {
$("#errorDiv").load('Report/Error/');
}
},
error: function (somefunction) { }
});
}
答案 0 :(得分:1)
是的,创建一个ViewModel POCO类:
var myJsonResult = new { result: true };
return Json(myJsonResult);
您还可以使用强类型的ViewModel并返回:
var myJsonResult = new CustomResult { result: true };
return Json(myJsonResult);
然后在成功函数中检查该类的属性:
success: function (data) {
if(data.result) {
showDialog();
}
else if(!data.result) {
$("#errorDiv").load('Report/Error/');
}
},
编辑:
您可能还想查看jquery的.serialize()方法:
data: $("#myForm").serialize()
如果您将ViewModel绑定到表单元素并需要将它们发布回服务器,这将非常有用。