【发布时间】:2017-01-17 18:08:42
【问题描述】:
我正在进行实时搜索,用户在文本框中键入内容,然后通过 ajax 结果被提取并添加到 ul 中,在这种特定情况下,我正在寻找用户名,所以如果用户名是 johnny并且用户输入jo 然后johnny 应该出现等等。
我有 ajax js 代码、一个 post 方法和一个用户列表模型视图,我现在正试图返回列表但似乎不起作用。
我的js:
$("input#searchtext").keyup(function (e) {
var searchVal = $("input#searchtext").val();
var url = "/profile/LiveSearch";
$.post(url, { searchVal: searchVal }, function (data) {
console.log(data);
});
});
LiveSearch 视图模型
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; }
}
post 方法
[HttpPost]
public List<string[]> 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 usernames;
}
所以基本上我想返回包含特定字符串的列列表(或其他内容),并将所有结果通过 ajax 回调传递给 javascript。
【问题讨论】:
-
你可以使用成功回调和来自控制器的结果json结果
-
查看我的回答,希望对您有所帮助
-
您的操作在签名中返回 List
,但实际上您返回的是 List 。你的代码编译成功了吗?
标签: c# jquery ajax asp.net-mvc entity-framework