我正在进行实时搜索,用户在文本框中键入内容,然后通过ajax结果获取并添加到ul中,在这种特定情况下,我正在查找用户名,因此如果用户名是{{1然后johnny
然后jo
中的用户类型会出现,依此类推。
我有ajax js代码,post方法和用户列表模型视图,我现在正在尝试返回列表,但似乎没有工作。
我的js:
johnny
LiveSearch视图模型
$("input#searchtext").keyup(function (e) {
var searchVal = $("input#searchtext").val();
var url = "/profile/LiveSearch";
$.post(url, { searchVal: searchVal }, function (data) {
console.log(data);
});
});
帖子方法
public class LiveSearchUserVM
{
public LiveSearchUserVM()
{
}
public LiveSearchUserVM(UserDTO row)
{
FirstName = row.FirstName;
LastName = row.LastName;
}
public string FirstName { get; set; }
public string LastName { get; set; }
}
所以基本上我想返回一个包含特定字符串的列的列表(或其他内容),并通过ajax回调将所有结果传递给javascript。
答案 0 :(得分:1)
要将结果作为JSON返回,请将您的方法更改为以下内容:
[HttpPost]
public JsonResult LiveSearch(string searchVal)
{
// Init db
Db db = new Db();
List<LiveSearchUserVM> usernames = db.Users.Where(x => x.Username.Contains(searchVal)).Select(x => new LiveSearchUserVM(x)).ToList();
return Json(usernames);
}
答案 1 :(得分:0)
$.ajax({
url : ""/profile/LiveSearch"",
type: "POST",
data : searchVal ,
success: function(data)
{
//data - response from server
},
error: function ()
{
}
});
并从Post方法返回JsonResult