2013-01-11 96 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

相关问题