从jQuery函数'$ .ajax'传递参数到控制器函数

时间:2010-12-13 12:32:22

标签: c# asp.net-mvc jquery

我正在使用ASPNET MVC 2.0。我正在尝试使用jquery函数.ajax将值从View传递给Controller函数。我的jquery函数是:

$(document).ready(function() {
    $("#Search").click(function(event) {

        var searchString = $("#TraderSearch").val();            
      $.ajax({
            type: 'POST',
            url: '/Build/SearchTrader',
            data: "{strData : '" + searchString + "' }",
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function(ResultList) {
                var contents = "";
                var count = 0;
                $(ResultList).each(function() {
                contents = contents + '<tr><td>' + ResultList[count].Name + '</td><td>' + ResultList[count].Value +
                     '</td><td><a class="edit"><img src="../../html/images/Edit.gif" width="14" height="14" alt="edit" /></a></td></tr>';
                    count = count + 1;
                });
                $("#SerachResultList").append(contents);
                alert("{strData : '" + searchString + "' }");
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert("Error: " + textStatus + "\n" + errorThrown);

            }
        });


    });
});

我的控制器功能如下:

 public ActionResult SearchTrader(string strData)
    {


        //Function to search DB based on the string passed

        return Json(lstDictObject);
    }

我的问题是,我无法获得控制器中的值。我得strData为'null'。我认为我试图传递价值的方式存在重大错误?任何人都可以纠正我吗?

先谢谢,

Vipin Menon

2 个答案:

答案 0 :(得分:0)

试试这个:

data: "strData = " + searchstring

答案 1 :(得分:0)

我相信以下内容应该有效:

data: { strData: searchstring }

引用在我刚刚测试的脚本中引起了同样的问题。

如果这是您的实际代码,您还需要检查“#SerachResultList”上的拼写。