我知道在論壇上還存在其他問題,但發現了有用的解決方案。 我有這樣定義的控制器:將數組從Ext.Net存儲到ASP.NET MVC
[HttpPost]
public ActionResult Update(int id, IList<MyObject> data)
{
return Json(new { success = false, message = "saved!" });
}
的MyObject
JSON數組是JsonStore內側和submitData()
函數調用發送起來。我可以看到一切都正確發送,「數據」參數是一個MyObject的數組,如果我手動做JSON.Deserialize<IList<MyObject>>(data)
我得到正是我所需要的,這意味着數據是一個有效的JSON字符串...在頭我可以看到「application/json」內容類型。 我已經使用JsonValueProviderFactory
,但它沒有幫助。從我的理解看來,價值提供者似乎應該很容易將數組映射到IList中,所以我想知道如果我做錯了什麼...
謝謝!
UPDATE 作爲一個評論指出我有一個稍微不同的使用情景:我其實通過Store.submitData()調用發佈此數據...很顯然,即使頭是相似的,商店提交不起作用,因爲它實際上會生成一個字符串。
有沒有人有任何關於如何強迫商店做類似於JSON.stringify的知識?
酷,這正是需要的。需要指出的是,即使沒有JsonValueProvider,它也可以工作。 作爲一個方面說明,我實際上並沒有通過Store.submitData()調用發佈該數據,而是通過Store.submitData()調用...顯然,即使標頭相似,商店提交也不起作用,因爲它實際上會生成串。 有沒有人有任何關於如何強迫商店做類似於JSON.stringify的知識? – Tallmaris 2012-02-21 14:12:14
@Tallmaris,JsonValueProvider內置ASP.NET MVC 3.這就是它工作的原因。如果您不寫自定義值提供程序,這將永遠不會在ASP.NET MVC 2中工作。 – 2012-02-21 14:13:21