0

MVC 4 と Entity Framework を使用して、イントラネット Web アプリを開発しています。ビューの 1 つで、オートコンプリート機能を実装する必要があります。そのために、Bootstrap Typeahead を使用しています。入力要素をフィードするためにアクション(つまり関数)を渡そうとしましたが、うまくいかないようです。

Json を返す私のアクション結果は次のとおりです。

public ActionResult AutoComplete(string term)
{
    var result = db.Persons.Where(p => p.FirstName.ToLower().Contains(term.ToLower()) || p.LastName.ToLower().Contains(term.ToLower())).ToList().Select(p => p.FullName).ToList();

    return Json(result, JsonRequestBehavior.AllowGet);

}

私のビューと私のスクリプト:

@model IEnumerable<BuSIMaterial.Models.Person>

@{
    ViewBag.Title = "Index";

}


<link href="/Content/PagedList.css" rel="stylesheet" type="text/css" />


<h2>Index</h2>


<input type="text" class="typeahead" data-provide="typeahead">



@section Scripts
{
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/bundles/jqueryui")
    @Styles.Render("~/Content/themes/base/css")

        $(".typeahead").typeahead({
            source: function (query, process) {
                var persons = [];
                map = {};

                // This is going to make an HTTP post request to the controller
                return $.post('/Person/AutoComplete', { query: query }, function (data) {

                    // Loop through and push to the array
                    $.each(data, function (i, person) {
                        map[person.Name] = person;
                        map[person.F]
                        persons.push(country.Name);
                    });

                    // Process the details
                    process(countries);
                });
            },
            updater: function (item) {
                var selectedShortCode = map[item].ShortCode;

                // Set the text to our selected id
                $("#details").text("Selected : " + selectedShortCode);
                return item;
            }
        });


    </script>
}

マスター ページで、Bootstrap jquery ファイルを呼び出します。何が起こっているかについて何か考えはありますか?

4

0 に答える 0