好吧,所以我使用的是MVC 3,它非常適合將JSON數據集反序列化爲傳遞給我的控制器操作的強類型對象。不幸的是,我還沒有找到一個更具動態的解決方案。如何在MVC 3控制器中獲取動態創建的Json數據集?
是否內置Json反序列化和類支持「未定義」屬性集?例如,假設我有一些固定的數據,如姓名和年齡,但我也想傳遞一個動態創建的評級列表,用戶可以在其中輸入(或選擇)電影並在表中設置評分值。
模型數據結構可以是這樣的:
public class UserRatings
{
public string Name { get; set; }
public int Age { get; set; }
public Dictionary<string,int> Ratings { get; set; }
}
但是假設我的Json數據集看起來像這樣的javascript:
var data = { Name: name, Age: age, Ratings: rating };
凡等級變量是一個動態構造對象由電影的名稱(或編號)作爲關鍵字和評級編號組成。在控制器動作中自然地反序列化它將不會成功,因爲它不理解評級到相當複雜的字典對象的映射。但是有沒有一個通用的Json集合,我可以用它作爲中間格式的評分?
我已經嘗試使用JavaScript對象作爲JSON字符串,只是發送一個字符串,但我無法找到一個「工廠」或可以使C#中的JSON結構的東西,我可以迭代得到數據輸出。看起來在這方面Json
和JsonResult
並不幫助我。基本上我怎麼能在MVC中使用內置的Json支持來對自己的通用Json集合對象進行反序列化?
只是想評論一下,我的解決方案到目前爲止是使評級爲字符串類型,並在客戶端上對評級對象執行JSON.stringify並將其作爲一個字符串屬性發送。然後它們全部直接映射到POCO中。然後剝離評級字符串中的所有轉義字符,該字符串以json字符串留給我,以便JavaScriptSerialiser能夠轉換爲Dictionary,我可以在其中遍歷它們並更新數據庫。它有點混亂,但它有效。任何建議,不勝感激。 –
Johncl
2011-03-30 12:31:24
相關/愚弄: http://stackoverflow.com/questions/5022958/passing-dynamic-json-object-to-c-sharp-mvc-controller http:// stackoverflow。com/questions/10787679/passing-unstructured-json-between-jquery-and-mvc-controller-actions – 2013-01-07 10:14:05