2016-06-14 217 views
0

我正在使用jQuery UI自动填充并使其部分工作。当找不到结果时,它会显示我的“未找到结果”。消息没有问题,但是当找到结果时,它仅显示每个选项的空白框,根本没有文本。jQuery UI自动填充不填充文本的选择列表

enter image description here

我已经调试并没有什么开发者控制台显示,我可以深入到我的ASP.Net代码,看看有效数据得到拉动。我在这里错过了什么?

的jQuery:

$("#ProjectSearchBox").autocomplete(
{ 
    minLength: 3, 
    source: function(request, response) 
    { 
     $.ajax(
     { 
      cache: false, 
      type: "GET", 
      url: "/Timesheet/ProjectCodes?searchTearm=" + request.term, 
      success: function(data) 
      { 
       response(data); 
      }, 
      error: function(xhr) 
      { 
       alert("Error getting project list, please try again later."); 
      } 
     }); 
    } 
}); 

HTML:

<li> 
    <label for="ProjectSearchBox">Search Project:</label> 
    <input type="text" id="ProjectSearchBox" name="ProjectSearchBox" list="ProjectList" /> 
</li> 

ASP.Net代码:

var projects = db.ProjectCodes 
         .Where(project => project.Code.ToLower().Contains(searchTearm.ToLower()) || project.Description.ToLower().Contains(searchTearm.ToLower())) 
         .Select(project => new 
         { 
          projectInfo = string.Concat(project.Code, " | ", project.Description) 
         }).ToList(); 

    if (projects.Count == 0) 
    { 
     return Json(new { responseText = "No match found." }, JsonRequestBehavior.AllowGet); 
    } 
    else 
    { 
     return Json(projects, JsonRequestBehavior.AllowGet); 
    } 

回答

2

而不是返回的数组或字符串,您的控制器被返回对象的数组与一个名为“projectInfo”的字符串属性。自动完成功能不知道如何解析这个没有进一步的指示。更改选择线您的服务器代码为:

.Select(project => string.Concat(project.Code, " | ", project.Description)) 
+0

这是问题,谢谢 – Matthew