Я работаю над веб-приложением в сети, используя ASP.NET MVC4 и Entity Framework. По одному из моих взглядов у меня есть список людей, которые могут быть огромными в будущем. Итак, чтобы упростить задачу, я хотел реализовать компонент поля автозаполнения с помощью jQuery UI и Json.MVC4 - автозаполнение с использованием Json
Дело в том, что когда я использую свою базу данных для предоставления источника для кода jQuery, он не работает. Однако, когда я создаю переменную с помощью жестких данных кодирования, она работает.
Мой Действие:
public ActionResult AutoComplete(string term)
{
BuSIMaterial.Models.BuSIMaterialEntities db = new Models.BuSIMaterialEntities();
//var result = new [] {"A","B","C","D","E","F"}; with this, it works
var result = (from obj in db.Persons where obj.FirstName.ToLower().Contains(term.ToLower()) select obj).ToArray(); // with this, it doesn't work
return Json(result, JsonRequestBehavior.AllowGet);
}
Мой Вид:
@{
ViewBag.Title = "Auto";
}
<h2>Auto</h2>
<label for="persons">Persons : </label><input type="text" id="persons" name="persons"/>
@section Scripts
{
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
@Styles.Render("~/Content/themes/base/css")
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$('#persons').autocomplete({
source: '@Url.Action("AutoComplete")'
});
})
</script>
}
Я попытался изменить свой тип возвращаемого значения (JsonResult вместо ActionResult), но ничего не меняется. Любая идея решить эту проблему?
Не могли бы вы уточнить, что «не работает». Имеет ли ваш массив результатов какие-либо значения, например? –
Когда я использовал отладчик, действительно есть значения в моей переменной результата. Я не знаю, почему, но автопредложение не работает, когда я использую свой db. – Traffy