2013-01-11 94 views
0

請幫助我!ajax函數沒有傳遞給控制器​​的值

我有div與幾個銀行的圖像在我的_layout.cshtml頁面。每個圖像有一個id,比如說id "Jonota","Sonali","Rupali" ...等。現在,我使用jquery,這樣,當每個imageclicked, 我想該圖像的id傳遞給我的controller。 我的jQuery的樣子:

var a = $('div#banksBody img').size(); 
a.each($('div#banksBody img').click(function() { 
    $(this).addClass('bankIcons'); // this class is just for making the cursor > pointer in css 
    var id = this.id; 
    $.ajax({ 
     url: "Home/Test", 
     type: "POST", 
     traditional:true, 
     data: JSON.stringify(id), 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function (result) { 
      if (result!="") { 
       alert(result); 
     } 
    });   
})); 

我的控制器看起來相當簡單:

[HttpPost] 
    public JsonResult Test(string id) 
    {  
     return Json(id , JsonRequestBehavior.AllowGet); 
    } 

我缺少什麼?

+0

標題表明,沒有值傳遞給控制器​​,但在你的問題,你在你的問題作出任何進一步的澄清。它是否進入你的控制器,但它沒有字符串的值?或者它根本沒有得到映射方法? –

+0

可以試試這個,從'var id = this.id;'改成'var id = $(this).id;' – DON

+0

你的控制器是否被擊中?你很想使用''/ Home/Test'(注意多餘的'/'),或者只有當你的頁面在根目錄下時,鏈接纔會有效 –

回答

0

您在POST請求提供參數名:

$.ajax({ 
     url: "Home/Test", 
     type: "POST", 
     data: {'id' : JSON.stringify(id)} 
    });  
0

請檢查代碼data: JSON.stringify(id),我覺得字符串化需要一個參數

insted的那試試這個:

data: {"id":id}, 
+0

都能跟得上:(仍然得到null作爲返回 – Aqua

0

您可以嘗試下面的代碼

  $("#banksBody>img").each(function() { 


     $(this).click(function(){ 


      var id = $(this).attr('id'); 


      }); 


      }); 
+0

首先你必須應用每個函數的圖像不是f或圖像大小..然後,您可以添加點擊功能的所有圖像 – MAAAAANI

+0

謝謝。但點擊每個圖像不是問題。我的問題是,我無法獲得圖像ID在我的控制器內傳遞。 – Aqua

+0

我沒有找到你 – MAAAAANI

0

試試這個

$("#banksBody>span").each(function() { 


$(this).click(function(){ 


var id = $(this).attr('id'); 

$.ajax({ 
    url: "Home/Test", 
    type: "POST", 
    traditional:true, 
    data: {id:id}, 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    success: function (result) { 
     if (result!="") { 
      alert(result); 
    } 
    });   
     }); 


    }); 
+0

當我這樣做(只有jquery部分工作。這就是我知道),ajax函數不會進入控制器。但如果我使用Json.stringify(id),那麼它將進入控制器內部,但id不會傳遞到控制器中。我得到空作爲回報。 – Aqua

相關問題