2016-08-22 100 views
0

我试图让自动完成(asp.net核心)剑道自动完成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();    
     } 

在我查看我总是得到正确的数值,但它总是“未定义”。我错在哪里?

+0

请添加一个ajax请求的数据的例子。您可以在网络选项卡的开发工具(F12)中看到它。 – DontVoteMeDown

+0

你在哪里从你在自动完成'.DataTextField(“Email”)中提到的Action'GetUsers'中返回'Email'实体?或者使用'.DataTextField(“name”)' – Vijai

回答

1

您正在将服务器端操作中的“电子邮件”重命名为“名称”;所以你应该使用

.DataTextField("name")