2009-05-27 98 views
0

我有一個ASP.NET MVC服務器應用程序和客戶端代碼,它使用jQuery。我想使用ajax將對象從客戶端傳輸到服務器並返回。在服務器上,我基本上只是驗證並序列化它們。在客戶端上,我有一些UI代碼來創建可視化表示和一些其他代碼來管理某些對象屬性。如何最好地在.NET服務器代碼和JavaScript客戶端代碼之間共享邏輯類型?

我的問題是這樣的:什麼是我最好的方式來編組這些對象?我目前的想法只是從我的控制器動作傳回一個包裝爲JsonResult的對象,但我不確定在客戶端上完成對象後將對象傳回MVC世界的最佳方式。我可以構建一個JSON字符串並將其作爲控制器操作的字符串參數傳遞迴MVC,在那裏我必須手動將JSON解壓縮爲.NET類型。有沒有辦法對.NET類型或其他一些「便利」機制進行更自動的映射,這可能有助於防止錯誤(即使我必須編寫該便利機制)?

這似乎與ModelBinder的想法非常相似,也許我只是想通過使用jquery將JSON推回到服務器而不是具有「常規」表單文章的想法拋出。我可以以某種方式使用ModelBinder將我的客戶端提供的JSON轉換爲.NET端的快樂模型類型嗎?

回答

4

您不必手動將JSON解壓縮爲.NET類型。你有各種庫爲你做這個。我個人更喜歡JSON.NET。所有你需要做的就是這樣的事情:

var deserializedObject = JsonConvert.DeserializeObject<ObjectType>(json); 

如果您不想在第三方庫的依賴性,只要使用微軟的JavaScriptSerializer:

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
var deserializedObject = serializer.Deserialize<ObjectType>(json); 

Microsoft's documentation for JavaScriptSerializer

相關問題