Asp.net mvc 3 url.action用于自动完成

Asp.net mvc 3 url.action用于自动完成,asp.net-mvc-3,Asp.net Mvc 3,在得到回复的帮助后,我将代码更改为 @Html.TextBoxFor(per => per.Hospital, new { style = "width:220px", @maxlength = "50", data_autocomplete = Url.Action("HospitalList", "Person") }) 我的jquery是 $(document).ready(function () { $('input[data_autocomplete]'

在得到回复的帮助后,我将代码更改为

@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库以使其工作

您还没有显示您正在使用的自动完成插件。如果是,您可以从控制器操作中以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的形式返回字符串列表。

您使用什么来自动完成?我没有使用任何东西,我只是想让textboxfor自动完成。我对MVC和jquery非常陌生。上面列出了我所做的一切。HTML中没有自动完成功能。如果你想使用一个,你必须使用一个插件。jQueryUIAutoComplete就是这样一个插件。您需要在视图中引用jquery.js和jquery-ui.js。您还应该阅读一些文档来熟悉一些基本的javascript。如果你看到我的控制器在上面,我现在返回一个视图,根据你的解释,我必须返回jason,我如何才能一起返回视图和jason。我没有使用任何自动完成插件。你不能同时返回JSON和视图。这没有道理。为了使用jQuery UI autocomplete插件,请确保首先在页面中包含jQuery.js,然后是jQuery-UI.js脚本。最后,您可以在自定义脚本中使用.autocomplete。