2010-12-13 207 views
1

我正在使用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梅农

+0

尝试使用有效的JSON:''{“strData”:“'+ searchString +'”}'',有什么区别? – 2010-12-13 13:05:37

+0

它可能是一个路由问题。默认值是'可能'设置为id。一条新路线可能会帮助你。 – 2010-12-13 13:09:49

回答

0

试试这个:

data: "strData = " + searchstring 
+0

为什么-1?.... – 2010-12-13 13:00:12

+0

不是我的投票,但这在几个层面上是不正确的,额外的间距和缺乏编码的主要 – 2010-12-13 13:06:26

0

我相信下面应该工作:

data: { strData: searchstring } 

行情造成了同样的问题脚本我刚测试过。

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