有两种方法可以做这样的事情:
第一:只有职位上提交的信息。只要您将name
和id
属性添加到DOM中的每个元素,每个元素都会在Request.Form
中表示,因此您可以轻松地遍历该集合。
我倾向于有一个命名约定,如insurance_row_1
,insurance_row_2
等等。你可以找到所有的行像Request.Form.AllKeys.Where(k=>k.StartsWith("insurance_row_"))
。
当要保存在服务器上的每一个动作:
保持在JavaScript中的状态的容器,在一些字典的控制,你把已经由您执行的每个动作保持着信息应用程序以及服务器是否处理它们的状态。喜欢的东西:
var stateContainer = [
{ 'put-insurance-row-1', false },
{ 'delete-insurance-row-1', false }
];
做一个AJAX请求到服务器来执行这样的操作,并使用状态容器重点跟踪请求是成功还是失败。请求成功提交后,将状态设置为“真”。请务必按照接收事件的顺序执行此操作,以便将它们逐个发送到服务器以确保您保持有效状态。
如果某些状态尚未保留,您可以(尝试)阻止关闭浏览器。
那么,你有什么发现_works_? – Jeremy 2010-03-26 12:59:32
+1 - 有趣的问题 – Ramesh 2010-03-26 13:02:21
@Jer - 我的方法假定了一个预定义的标识符,并且我的检索数据的方法感觉很脏(对DOM元素的数量进行假设等)。我真的很喜欢Jan对lambda运算符的使用 - 没有想到这一点,它看起来非常干净。 – Mayo 2010-03-26 14:47:24