2011-12-14 21 views
1

我有一個jquery AJAX調用,將動態構造的Json傳遞給控制器​​方法。我面臨的問題是,當我的方法被擊中時,我沒有收回數據......我正在嘗試使用JsonResult,並且嘗試了不同的集合,並且沒有運氣。所以我想知道的是,我應該使用哪種obect類型來接收這個通用的處理我的動態Json結構的參數?我也曾經測試我的JSON是使用有效http://jsonlint.com/通過AJAX動態Json到MVC 3方法

查看代碼:

$( 「saveButton。」)點擊(函數(){

var jsonObjects = GetValues(); 

    $.ajax({    
     type: "post", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     url: "@Url.Action("SaveChanges", "Contact")", 
     data: JSON.stringify(jsonObjects),    
     success: function(result) { 

     } 

    });   

}); 

控制器代碼:

<HttpPost()> _ 
Public Function SaveChanges(ByVal data As JsonResult) As ActionResult 

    Return View() 

End Function 

任何意見將不勝感激!

+0

您的發佈數據是否真正動態,因爲它可能包含完全未知屬性的任意組合?或者它發佈已知屬性的動態值(或數組值)? – Shawn 2011-12-14 21:20:05

+0

完全動態 – Hidan 2011-12-14 21:27:43

+0

如果您發佈的項目是真正動態的...完全未知和不可知的,您如何預期在控制器操作中使用這些值?你怎麼知道要放哪裏?通常,您需要使用索引位置或參數名稱。 – Shawn 2011-12-14 22:05:32

回答

0

我說傳遞它作爲一個字符串,這就是它,因爲你使用stringify。然後,您可以從控制器代碼中的字符串反序列化JSON。

0

你需要改變e你的函數返回Json而不是視圖。我不是一個VB程序員,但看着this解決方案,下面應該幫助您開始:

Return Json(New With {Key 
    .someList = resultList, 
    .someInt = resultInt}, 
    JsonRequestBehavior.AllowGet) 

您將需要修改匿名對象返回所需的值。

相關問題