有兩種方法可以做這樣的事情:
第一:只有職位上提交的信息。只要您將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