Asp.net mvc 在自动完成文本框mvc中显示多个值
我试图从数据库中选择名字和姓氏到mvc中的自动完成文本框中。我只能选择第一个名字,它工作得很好。我无法将这两个字段连接起来并在自动完成文本框中显示它。非常感谢您的帮助 Jquery:Asp.net mvc 在自动完成文本框mvc中显示多个值,asp.net-mvc,autocomplete,Asp.net Mvc,Autocomplete,我试图从数据库中选择名字和姓氏到mvc中的自动完成文本框中。我只能选择第一个名字,它工作得很好。我无法将这两个字段连接起来并在自动完成文本框中显示它。非常感谢您的帮助 Jquery: <link href="~/Content/jquery-ui.css" rel="stylesheet" /> <script src="~/Content/jquery-ui.js"></script> <script type="text/javascript">
<link href="~/Content/jquery-ui.css" rel="stylesheet" />
<script src="~/Content/jquery-ui.js"></script>
<script type="text/javascript">
$(function () {
$("#txtSearch").autocomplete({
source: '@Url.Action("GetEngineers")'
});
});
</script>
@Html.TextBox("searchTerm", null, new { id = "txtSearch" })
<input type="submit" value="Search" class="btn btn-primary" />
控制器:
private DBEntityDataModel _context;
public EngineersController()
{
_context = new DBEntityDataModel();
}
public JsonResult GetEngineers(string term)
{
List<string> engineers;
//This is working when I select just the firstname to be displayed
//engineers = _context.tblEngineers.Where(e => e.FirstName.StartsWith(term) || (e.Surname.StartsWith(term)))
// .Select(n => n.FirstName).ToList();
//var res = (from e in _context.tblEngineers
// where e.FirstName.ToLower().Contains(term.ToLower()) || e.Surname.ToLower().Contains(term.ToLower())
// select new
// {
// e.FirstName,
// e.Surname
// }).ToList();
var res = _context.tblEngineers.Where(e => e.FirstName.StartsWith(term) || (e.Surname.StartsWith(term)))
.Select(n => new
{
label = n.FirstName + ' ' + n.Surname
}).ToList();
return Json(res, JsonRequestBehavior.AllowGet);
}
什么不起作用?您会遇到什么错误?更好的解决方案是在您的计算机上创建计算属性model@StephenMuecke当我使用上面的未注释代码时,它不会在自动完成文本框中返回firstname和姓氏。我没有发现任何错误。区别似乎在于您的未注释代码label=…@AliBesharatinia我添加了这个公共字符串FullName{get{return FirstName+names;}}},并将n.FullName传递给第一个注释代码。它不起作用