我试图自动完成(asp.net核心)
Razor观点:
@(Html.Kendo().AutoComplete()
.Name("users")
.Filter("startswith")
.Placeholder("Type user name...")
.DataTextField("Email")
.Events(e =>
{
e.Select("onSelect");
})
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetUsers", "User").Data("onAdditionalData");
})
.ServerFiltering(true);
})
.HtmlAttributes(new { style = "width:30%" })
.MinLength(2)
.Suggest(true)
.Height(400)
.Template("<span class=\"k-state-default\">\\#=users.Email\\#</span>"))
服务器端:
[HttpGet]
public dynamic GetUsers(string term)
{
return ctx.Users.Where(x => x.Email.ToUpper().Contains(term.ToUpper()))
.Select(res => new { id = res.Id.ToString(), name = res.Email }).ToList();
}
在我看来,我总是得到正确数量的价值,但它总是&#34;未定义&#34;。我哪里错了?
答案 0 :(得分:1)
您正在服务器端操作中将“电子邮件”重命名为“名称”;所以你应该使用
.DataTextField("name")