我有一个包含部分视图的对话框。 如果用户决定取消对话而不保存,是否可以撤消用户在对话框中所做的更改?
如果用户现在打开相同的对话框,即使用户取消了对话框,更改仍然存在。 我知道可以调用控制器并替换局部视图。
还有其他办法吗?
答案 0 :(得分:1)
sanke - 首次加载partialview时,可以将div的内容存储在.data()元素中。然后,如果它被取消(不保存),只需将.data()重新推入为对话框创建的div。
行动胜于雄辩:
// the partial getting loaded
$("#targetDiv").html(data);
var foo = document.body;
jQuery.data(foo, "myKey", data);
然后在取消时你可以反过来:
// inside the dialog cancel event
var foo = document.body;
var data = jQuery.data(foo, "myKey");
$("#targetDiv").html(data);
试一试......
答案 1 :(得分:0)
我对aspnet mvc了解不多,但就我所知的客户端和脚本而言,只要你在客户端与对话框一起工作,已插入的内容将保留在那里,因为对话框是对话框的一部分页面的dom。为了解决这类问题,我通常创建一个“对话框”类,它将选择器保存到dialoq中的不同字段,并在调用opendialog方法或取消对话框时初始化为默认值。加号值是您的所有客户端脚本对话框都包含在一个简洁的javascript类中。