2011-09-07 51 views
2

如何對控制器的操作JSON對象MVC asp.net序列化工作?如何MVC asp.net系列化工作有關控制器操作JSON對象?

比如我有一個自定義的對象,如果用JSON發送一個Ajax請求對象向服務器動作

public ActionResult(List<CustomObject> abc) 
{ 
    // Object is serialized automatically how MVC is doing it is the question. 
} 

爲什麼我問這是我的一些對象無法正常serialzed因此原因數據丟失是存在的,那我也恢復到字符串值serializaiton的老方法。

public ActionResult(string abc) 
{ 
    JavaScriptSerializer serializer = new JavaScriptSerializer(); 

    List<CustomObject> lstabc = serializer.Deserialize<List<CustomObject>>(abc); 
} 

這是我想避免和其次哪些是做JSON對象序列化MVC Asp.net最好的庫?

+0

我認爲你需要編寫自己的JsonResult類(用於控制適當的擴展方法)。 Afaik用於.NET的最佳JSON庫是Newtonsoft.JSON(可在NUGet上獲得) – MattDavey

回答

1

的deserialisation由模型綁定的照顧。

,如果你發現它不工作,你可以創建自己的自定義模型綁定,並與框架註冊它 - 這應該意味着你能避免在控制器的所有deserialisation噪音。

有一些鏈接的這個解釋和如何實現以下SO問題自定義模型粘合劑:

ASP.Net MVC Custom Model Binding explanation

一個比較流行的JSON序列化圖書館是newtonsoft json.net庫 - 我用它有效地多次:

http://james.newtonking.com/pages/json-net.aspx

祝你好運!

相關問題