【发布时间】:2013-05-21 09:13:32
【问题描述】:
我正在尝试编写一个 ajax 用户搜索。我有这个文本字段:
<input type="text" id="userSearch" class="search-query" placeholder="Search">
这个 jQuery 在 .js 文件中:
$("#userSearch").keyup(function () {
if ($(this).val().length >= 3) {
$.getJSON('/User/SearchUsers', { displayName: $(this).val() }, function (data) {
if (data == null) {
alert("nothing");
}
else{
alert("OK");
}
});
}
});
这里是 UserController 和 Application 和 Repository 类:
[HttpGet]
public ActionResult SearchUsers(string displayName)
{
return Json(userApp.GetUserBySearch(displayName), JsonRequestBehavior.AllowGet);
}
public List<User> GetUserBySearch(string displayName)
{
return userRepo.GetUserBySearch(displayName);
}
public List<User> GetUserBySearch(string displayName)
{
return context.Users.Include("Group").Where(u => u.DisplayName.Contains(displayName)).ToList();
}
但这根本不起作用。它根本没有警报。那是什么意思呢?这意味着数据为空而不是空?! 我也试过这个:
var i = 0;
for (i = 0; i <= data.length; i++) {
alert(data[i].UserId);
}
但它也不起作用。 我已经做了几千次这样的事情,但现在它不工作了...... 我该怎么办...?
【问题讨论】:
-
您可以使用浏览器开发者工具中的“网络”选项卡准确地查看发送到服务器和从服务器接收的内容。 (如果您的浏览器没有开发工具,请切换到现代浏览器。IE8+、Chrome、Opera、Safari、Firefox [带有 Firebug 插件] 都有开发工具。)
标签: jquery asp.net-mvc-4