1

返信の助けを借りて、コードを次のように変更しました

@Html.TextBoxFor(per => per.Hospital, new { style = "width:220px", @maxlength = "50", data_autocomplete = Url.Action("HospitalList", "Person") })

私のjqueryは

$(document).ready(function () {        
    $('input[data_autocomplete]').each(function () {
        var url = $(this).data('autocomplete');
        $(this).autocomplete({
            source: function (request, response) {
                $.getJSON(url, {
                    term: request.term
                }, response);
            }
        });
    });
});

そして、新しいアクション結果を作成しました

 public ActionResult HospitalList(string term)
    {
        List<string> result = new List<string>();
        result.Add("Hospital 1");
        result.Add("NYUMC");
        result.Add("Christ");
        result.Add("Bellevue");
        result.Add("NewYork-Presbyterian");
        result.Add("North Central Bronx Hospital");            

        return Json(result , JsonRequestBehavior.AllowGet);
    }  

今私はどこに行くのですか?テキストボックスが表示されるだけで、オートコンプリートの動作はありません。それが機能するためにjqueryライブラリを含める必要がありますか

4

1 に答える 1

0

使用しているオートコンプリート プラグインを表示していません。その場合はjQuery UI autocomplete、フィルター処理された結果をコントローラー アクションから JSON として返すことができます。

[HttpGet]
public ActionResult PersonSearch(string term)
{
    // The term parameter will contain the value entered by the user in the textbox.
    // here you could use it and query your database in order to filter the results.
    string[] result = new string[]
    {
        "filtered value 1",
        "filtered value 2",
        "filtered value 3",
        "filtered value 4",
    };

    return Json(result, JsonRequestBehavior.AllowGet);
}

最後に、プラグインをアタッチします。

$(function() {
    $('input[data-autocomplete]').each(function() {
        var url = $(this).data('autocomplete');
        $(this).autocomplete({
            source: function(request, response) {
                $.getJSON(url, {
                    term: request.term
                }, response);
            }
        });
    });
});

コントローラー アクションがtermパラメーターを受け取り、文字列のリストを JSON として返す方法に注意してください。

于 2013-04-05T17:39:17.713 に答える