我有一個模型,它本質上是包含有三個數值字段和一個字符串字段,類似於以下對象的列表對象:莫名的MVC模型數據改變
public class DataModel
{
public List<DataItemModel> DataItems { get; set; }
}
public class DataModel
{
public string Comment { get; set; }
public decimal Value { get; set; }
public int ID { get; set; }
public int IntegerValue { get; set; }
}
視圖有一個表允許用戶設置每個項目的Value
和Comment
字段(ID
由數據層生成,IntegerValue
從Value
派生)。用戶可以使用jQuery post()
方法通過AJAX添加和刪除集合中的項目,並使用html()
部分更新網頁。
我看到的問題是,如果我有像這樣的評論/值對的列表:
Item 1, 1.00
Item 2, 2.00
Item 3, 3.00
Item 4, 4.00
Item 5, 5.00
我刪除通過網頁中的第三項,控制器正確的數據更改爲:
Item 1, 1.00
Item 2, 2.00
Item 4, 4.00
Item 5, 5.00
並使用PartialView()
返回新的HTML。但是,當網頁被更新,該模型以某種方式轉化爲:
Item 1, 1.00
Item 2, 2.00
Item 3, 3.00
Item 4, 4.00
我一直在使用VS2013的調試器和Firefox瀏覽器的網絡數據包分析器的事情證實了這一點,但在不知如何或爲何出現這種情況是完全。我不認爲這是一個緩存問題,因爲jQuery文檔說post()
從來沒有按定義緩存。我想這跟他打電話給PartialView()
有什麼關係?
編輯:有問題的(局部的)視圖是一個簡單的HTML形式,這是使用jQuery的html()
方法置於div
內部內的表。
更新:我已經做了一些更多的調試,並設法消除PartialView()
有問題的電話;它肯定會返回一個正確形成的PartialViewResult
。
我們可以看看你的'View'的相關部分嗎? – 2014-09-19 09:11:48
指數通常是基於零的,所以第三項是'2'而不是'3'。請添加相關的刪除JavaScript和C#代碼。 – Kami 2014-09-19 09:30:14
我已驗證我已通過正確的索引,所以我知道這不是問題 – RaceProUK 2014-09-19 09:33:50