从jQuery函数'$ .ajax'将参数传递给控制器函数
问题描述:
我正在使用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梅农
答
试试这个:
data: "strData = " + searchstring
+0
为什么-1?.... – 2010-12-13 13:00:12
+0
不是我的投票,但这在几个层面上是不正确的,额外的间距和缺乏编码的主要 – 2010-12-13 13:06:26
答
我相信下面应该工作:
data: { strData: searchstring }
行情造成了同样的问题脚本我刚测试过。
如果这是您的实际代码,您还需要检查“#SerachResultList”上的拼写。
尝试使用有效的JSON:''{“strData”:“'+ searchString +'”}'',有什么区别? – 2010-12-13 13:05:37
它可能是一个路由问题。默认值是'可能'设置为id。一条新路线可能会帮助你。 – 2010-12-13 13:09:49