【发布时间】:2013-08-10 10:23:37
【问题描述】:
我正在创建一个过滤器列表。我有几个多选列表,用户可以在其中选择多个选项。问题是我使用 ajax 返回值并调用一个控制器方法,该方法将返回一个 Json 数据,然后将其显示在网站上。但问题是它不起作用。
控制器方法:
[HttpPost]
public ActionResult FilterData(string a, string b, string c, string d){
//Do Something with the strings e.g. filter the data.
return Json(result, JsonRequestBehavior.AllowGet);
}
Ajax获取过滤数据的方法:
$(document).ready(function() {
$("#submitBTN").click(function() {
var ab = $('#selectedID1').val();
var bc = $('#selectedID2').val();
var cd = $('#selectedID3').val();
var de = $('#selectedID4').val();
$.ajax({
contentType: "application/json; charset=utf-8",
url:"/Controller/FilterData",
type: "POST",
data: JSON.stringify({a: ab, b: bc, c: cd, d:de }),
success: function(result){
}
error: function(){}
});
return false;
});
});
使用 firebug 我可以看到发布了正确的值。而且我知道,如果我通过 url 链接手动选择字符串 a,它会得到正确的过滤数据。但是,这些数据似乎没有进入方法并输出所有数据,而无需使用 postes 值进行过滤。
问题是发布的数据没有被收集或发送到方法FilterData,因此如果没有选择过滤器选项,它会返回所有数据。我想知道如何修复代码,以便获取 ajax 发布的数据以将该数据发送到方法 FilterData 参数,例如字符串 a、字符串 b、字符串 c 和字符串 d。
【问题讨论】:
-
至少尽量避免示例中的拼写错误。右括号和引号等
-
ajax错误没有返回任何内容?
-
@user1938460:经过几次编辑......现在你成功后只缺少逗号。
标签: javascript jquery ajax asp.net-mvc