ASP.NET MVC4 と Entity Framework を使用してイントラネット Web アプリに取り組んでいます。私の見解の 1 つとして、将来巨大になる可能性のある人物のリストがあります。そこで、作業を簡単にするために、jQuery UI と 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>
}
戻り値の型 (ActionResult ではなく JsonResult) を変更しようとしましたが、何も変わりません。この問題を解決するアイデアはありますか?