ajax函数没有将值传递给控制器

时间:2013-01-11 09:07:48

标签: jquery ajax asp.net-mvc-3 image

请帮帮我!

我的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);
    }

我错过了什么?

4 个答案:

答案 0 :(得分:0)

您必须在帖子请求中提供参数名称:

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

答案 1 :(得分:0)

请检查代码data: JSON.stringify(id),我认为 stringify 还需要一个参数

考虑到这一点,试试这个:

data: {"id":id},

答案 2 :(得分:0)

您可以尝试以下代码

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


        $(this).click(function(){


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


            });


          });

答案 3 :(得分: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);
    }
    });           
       });


    });