我在MVC4中有一个编辑功能
public ActionResult Edit(UserGroup usergroup)
{
usergroup.created_date = DateTime.Now;
usergroup.modified_date = DateTime.Now;
db.Entry(usergroup).State = EntityState.Modified;
db.SaveChanges();
return Json(new { success = true });
}
我的Jquery按钮点击事件
$(".edit-link").click(function () {
var id = $(this).attr("id");
$(".edit-dialog").dialog({
width: 600,
position: { my: "center", at: "center", of: window },
title: "Edit User Group"
}).load("/UserGroup/Edit/" + id);
return false;
});
我的Jquery表单提交事件
$("#frmEdit").submit(function () {
var id = $(".edit-link").attr("id");
$.ajax({
url: "/UserGroup/Edit/" + id,
type: "POST",
data: $(this).serialize(),
datatype: "json",
success: function (result) {
if (result.success) {
window.alert("User group details modified successfully.");
location.reload();
} else {
$(".edit-dialog").html(result);
$.validator.unobtrusive.parse((".edit-dialog").dialog);
}
}
}).load("/UserGroup/Edit/" + id);
return false;
});
编辑: 结果,我得到一个空白页面(URL示例:localhost:1234 / UserGroup / Edit / Admin),只有一行{success = true}而不是执行window.alert。
对此有何想法?好像它甚至没有在jquery下成为这一行“success:function(result){// code}”
感谢。
答案 0 :(得分:1)
您需要将操作结果返回给jsonresult
其他的事情是将Httppost属性放在Edit jsonresult上,如:
[HttpPost]
public JsonResult Edit(UserGroup usergroup)
{
usergroup.created_date = DateTime.Now;
usergroup.modified_date = DateTime.Now;
db.Entry(usergroup).State = EntityState.Modified;
db.SaveChanges();
return Json(new { success = true });
}
更新:在表单提交事件后重新启动load事件,然后尝试
$("#frmEdit").submit(function () {
var id = $(".edit-link").attr("id");
$.ajax({
url: "/UserGroup/Edit/" + id,
type: "POST",
data: $(this).serialize(),
datatype: "json",
success: function (result) {
if (result.success) {
window.alert("User group details modified successfully.");
location.reload();
} else {
$(".edit-dialog").html(result);
$.validator.unobtrusive.parse((".edit-dialog").dialog);
}
}
});
return false;
});