2013-04-29 130 views
1

我想將對象傳遞給控制器​​並檢索控制器中的值。 我定義了諸如:如何使用ajax調用將對象傳遞給控制器​​

HTML代碼:

var positionarray = []; 

的Javascript:

$("#button").live('click',function(){ 
    positionarray.push({ 
     id: sessionStorage.getItem('id'), 
     value: $("#input").val() 
    }); 
}); 

// on save button click 
$.ajax({ 
     type: "GET",             
     url:"/Bugs/Position",             
     data: { 
      array:positionarray  
     }, 
     cache: false, 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function (json) { 

     } 
}); 

但我不能夠在控制器中檢索值。它變爲空。

+0

你的動作是怎樣的? – PSL 2013-04-29 04:58:12

+0

在'/ Bugs/Position'頁打印你的'Request',並檢查你得到了什麼,我認爲它是正確的。 – 2013-04-29 04:59:47

+0

我能夠傳遞給控制器​​,但在控制器中獲得的值爲空 – Jonathan 2013-04-29 05:01:25

回答

3

試試這個: - 你傳入對象的數組,所以你應該做的HTTPPost而非HTTPGET(這會爲基本類型的數組工作說INT的名單,strgin等)通過查詢字符串發送它(記住查詢字符串限制)。 用HTTPPost試試這個

$.ajax({ 
     type: "POST",      
     url:"Home/Position",             
     data: JSON.stringify({ 
       array: positionarray 
     }), 
     cache: false, 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function (json) { 

     } 

[HTTPPost] 
public void Position(YourClass[] array){... 
0

嘗試了這一點:

$.ajax({ 
     type: "GET",             
     url:"/Bugs/Position",             
     data: 'array='+positionarray  
     cache: false, 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function (json) { 

     } 
}); 
+0

有什麼區別? – Jonathan 2013-04-29 05:02:04

+0

將它作爲字符串而不是對象傳遞。我有一種感覺,就是因爲你的數組是JSON類型的,它正在惡化數據對象。 – Mysteryos 2013-04-29 05:02:58

0

試試這個:

ajax call必須在按鈕的點擊函數,那麼它會工作,

在你的代碼,你的前點擊你的ajax call運行,從而它將通過null 到您的控制器

$("#button").live('click',function(){ 
    positionarray.push({ 
     id: sessionStorage.getItem('id'), 
     value: $("#input").val() 
    }); 


    // on save button click 
    // this code must run after `button click` and after pushing data in 
    // positionarray variable 
    $.ajax({ 
      type: "GET",             
      url:"/Bugs/Position",             
      data: { 
       array:positionarray  
      }, 
      cache: false, 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      success: function (json) { 

      } 
    });// here ajax function code ends 

});// here button click function ends 
+0

Yah當然這就是我正在做的 – Jonathan 2013-04-29 05:20:17

+0

@Naidu檢查一次,在你的''問題''你的''ajax代碼'是'按鈕點擊功能'外。 – 2013-04-29 05:21:34

+0

但是我寫了一個評論,說ajax會在按鈕中點擊 – Jonathan 2013-04-29 05:52:18

相關問題