2012-12-14 89 views
2

有沒有辦法將對象集合發送給MVC操作?MVC將Json對象集合綁定到控制器動作

查看:

 $(".iconDocumentText").click(function (e) { 
      e.preventDefault(); 
      var $inputs = $("form.form :input:not('.submit')"); 
      var values = {}; // get search form values 
      $inputs.each(function() { 
       if ($(this).val()) { 
        values[this.name] = $(this).val(); 
       } 
      }); 
      console.log(JSON.stringify(values)); 
      $.ajax({ 
       url: "@Url.Action("Export","Log")", 
       data: JSON.stringify(values), 
       contentType: 'application/json', 
       type: 'GET', 
       success: function (data) { 
......... 
       } 
      }); 
     }); 

我想這沒有任何的運氣:

public ActionResult Export(Dictionary<string, string> values) 
    { 
.... 

這是什麼東西被髮送到控制器動作:

{"f_device":"4","f_package":"AGI-VS-GAME-M52-1.5.3.2.67"} 

回答

4

你也來表明它數據類型爲json並直接傳遞它們:

腳本:

$.ajax({ 
    url: "@Url.Action("Export","Log")", 
    data: values, 
    contentType: 'application/json', 
    type: 'GET', 
    dataType: 'json' 
}); 

控制器:

public ActionResult Test(int f_device, string f_package) 
{ 

編輯:

但是,如果你想獲取一個字典,你可以封裝你的DAT一箇中的對象:

腳本:

$.ajax({ 
    url: "@Url.Action("Export","Log")", 
    data: { values : values }, 
    contentType: 'application/json', 
    type: 'GET', 
    dataType: 'json' 
}); 

控制器:

public ActionResult Test(Dictionary<string, string> values) 
{ 
+0

奏效。謝謝 – ShaneKm

+1

真的很好的答案。 –

相關問題