我还在学习MVC 使用“编辑”,“详细信息”,“删除”链接显示员工网格。
点击编辑点击: 我使用下面的代码打开一个jQuery对话框并调用MVC动作。 操作URL在加载函数中的url参数中。
$(".edit").on("click", function (e) {
alert("editing");
var url = $(this).attr('href');
$("#dialog-edit").dialog({
title: 'Edit Details',
autoOpen: false,
resizable: false,
height: 455,
width: 550,
show: { effect: 'drop', direction: "up" },
modal: true,
draggable: true,
open: function (event, ui) {
$(this).load(url);
},
close: function (event, ui) {
$(this).dialog('close');
}
});
$("#dialog-edit").dialog('open');
return false;
});
我已经进行了一些服务器端验证。更改员工详细信息后单击“更新”按钮(使用上面的“编辑”链接打开内部模式对话框)。 无论服务器端验证失败还是通过,模态对话框都会被关闭,我知道这在回发中很自然。
我想知道再次打开jquery模式对话框的正确方法,如果服务器端验证失败,并显示错误消息显示用户的原因。
答案 0 :(得分:0)
在回复中使用一个标记,知道您是否需要打开对话框并显示错误,但是:这不是一个好习惯
如果使用jquery进行GET,那么可能会更好,然后如果没有错误,您可以处理响应并关闭对话框。
答案 1 :(得分:0)
如果以下解决方案存在问题,请告诉我:
我修改了我的jQuery对话框代码以进行ajax调用以更新详细信息而不是提交表单。
此外,修改了Action方法以返回JsonResult而不是ActionResult
$(".edit").on("click", function (e) {
alert("editing");
var url = $(this).attr('href');
$("#dialog-edit").dialog({
title: 'Edit Details',
autoOpen: false,
resizable: false,
height: 455,
width: 550,
show: { effect: 'drop', direction: "up" },
modal: true,
draggable: true,
buttons: {
"Save" : function(){
$.post("Student/Edit", $("form").serialize(), function (data) {
if (data) {
alert("data saved");
$("#dialog-edit").dialog('close');
window.location.href = "Student/Index";
}
else {
alert("not saved");
}
});
}
},
open: function (event, ui) {
$(this).load(url);
},
close: function (event, ui) {
$(this).dialog('close');
}
});
$("#dialog-edit").dialog('open');
return false;
});