在MVC中回发后保持jquery对话框打开
我还在学习MVC 显示包含编辑、详细信息、删除链接的员工网格 在编辑时,单击: 我正在使用下面的代码打开一个jQuery对话框,并调用一个MVC操作。 操作URL位于加载函数的URL参数中在MVC中回发后保持jquery对话框打开,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我还在学习MVC 显示包含编辑、详细信息、删除链接的员工网格 在编辑时,单击: 我正在使用下面的代码打开一个jQuery对话框,并调用一个MVC操作。 操作URL位于加载函数的URL参数中 $(".edit").on("click", function (e) { alert("editing"); var url = $(this).attr('href'); $("#dialog-edit").dialog({
$(".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模式对话框。在响应中使用一个标志,以知道是否需要打开对话框并显示错误,但是:这不是一个好的做法
如果您使用jquery执行GET,然后处理响应并在没有错误的情况下关闭对话框,可能会更好。请告知以下解决方案是否存在问题: 我修改了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;
});