我正在使用 jQuery website 中的 jQuery 自动完成插件 调用 Controller url,返回 json。问题是发送到 Controller 的参数始终为空。
这里是浏览器内自动完成功能的 jQuery 代码:
$(document).ready(function() {
var url = "/Building/GetMatchedCities";
$("#City").autocomplete(url);
});
这是 C# 中的 ASPNET MVC Controller 签名:
public JsonResult GetMatchedCities(string city)
{
..
return this.Json(query, JsonRequestBehavior.AllowGet);
}
提前致谢,
穆罕默德
最佳答案
我也遇到了同样的问题。在Fiddler中查看JQuery创建的URL后,我发现它看起来像这样:/MyController/MyMethod?term=x。因此,我更改了方法签名以使用参数名称“term”而不是“q”(“q”显示在 JQuery 网站自动完成示例中。)。这解决了问题,我仍然能够返回我需要的 JsonResult。
public JsonResult MyMethod(string term)
{
...
return Json(query, JsonRequstBehavior.AllowGet);
}
关于jQuery 自动完成将 null 参数传递给 ASP.NET MVC 2 中的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2516620/