2012-07-23 82 views
4

我在JavaScript的有代碼,AJAX發佈數據:ASP.NET MVC可以將JSON對象傳遞給帶有動態類型參數的參數的控制器嗎?

$.ajax({ 
       url: '/Configurations/GetSelectedPageTranslation', 
       type: 'POST', 
       data: { inttype: $("#some").val(), objectType:{prop1: 'adsfa', prop2: 'asdf'}}, 
       success: function (result) { 

       }, 
       error: function() { 
        alert('error'); 
       } 
      }); 

在控制器上我有簽名的方法:

public JsonResult GetSelectedPageTranslation(int inttype, dynamic objectType) 

我可以正確有IntType上。然而,objectType不會爲空,但如果我喜歡objectType.prop1,它會拋出錯誤。如果我將JSON.stringify在JavaScript中的對象類型,控制器中的objectType將有一個字符串值。

難道這可以直接訪問控制器中的JSON數據使用動態數據類型,如下所示:objectType.prop1?

感謝

回答

5

沒有出在MVC3 dynamic動作參數的內置支持。

但是,MVC非常具有可擴展性,因此您可以添加此功能。您需要做的是創建一個自定義IModelBinder,您可以在其中執行JSON反序列化並構建一個動態對象。

幸運的是,這篇文章:Making MVC 3 a little more… dynamic是處理完全相同的問題,所以你還可以找到示例代碼和其他鏈接也應該幫助你開始。

+0

對此答案+1。非常有幫助的感謝! – eadam 2013-09-05 02:03:12

相關問題