1

我有一个包含局部视图的对话框。如果用户决定取消对话框而不保存,是否可以撤消用户在对话框中所做的更改?

如果用户现在打开同一个对话框,即使用户取消了对话框,更改仍然存在。我知道它可以调用控制器并替换部分视图。

还有其他方法吗?

4

2 回答 2

1

sanke - 您可以在第一次加载部分视图时将 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);

试试看...

于 2010-12-02T13:42:50.680 回答
0

我对aspnet mvc知之甚少,但就我对客户端和脚本的了解而言,只要您使用对话框在客户端工作,已经插入的内容将保留在那里,因为对话框是dom的一部分页。为了解决这类问题,我通常为自己创建一个“对话框”类,该类将选择器保存到对话框中的不同字段,并且在调用 opendialog 方法或取消对话框时初始化为默认值。这样做的好处是,您对话框的所有客户端脚本都包含在一个简洁的 javascript 类中。

于 2010-12-02T13:44:30.677 回答