我有一个带有自动完成功能的文本框和一个按钮。点击按钮模式弹出窗口打开.Modal弹出窗口有两个文本框字段,即ProductName和Categoryame,以及一个用于将此信息保存到数据库中的按钮。 我已经成功使用modal popup保存数据。但之后我得到了这个输出{“status”:true,“message”:“Successfully Saved。”}。
但我希望使用文本框和按钮返回相同的初始视图,以便保存的产品开始出现在自动完成文本框中。 我的控制器代码是:
[HttpPost]
public ActionResult Create(Product prod)
{
string message = "";
bool status = false;
if (ModelState.IsValid)
{
db.Products.Add(prod);
db.SaveChanges();
status = true;
message = "Successfully Saved.";
//string url = Url.Action("CreateProduct", "Products");
//return Json(new { success = true });
return new JsonResult { Data = new { status = status, message = message } };
}
return PartialView("Create", prod);
}
我的jquery代码是:
function bindForm(dialog) {
$('form', dialog).submit(function () {
if ($("#formCrud").valid()) {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
dataType: 'json',
success: function (result) {
if (result.success) {
alert(result.message);
$('#myModal2').modal('hide');
} else {
$('#myModalContent2').html(result);
bindForm(dialog);
}
}
});
return false;
}
});
}
答案 0 :(得分:0)
你必须改变它。
[HttpPost]
public ActionResult Create(Product prod)
{
string message = "";
bool status = false;
if (ModelState.IsValid)
{
db.Products.Add(prod);
db.SaveChanges();
status = true;
message = "Successfully Saved.";
//string url = Url.Action("CreateProduct", "Products");
//return Json(new { success = true });
return new JsonResult { Data = new { status = status, message = message, success = true } };
}
return PartialView("Create", prod);
}
您要返回的json对象中没有成功属性,因此您永远无法评估result.success。