2016-08-22 56 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")