在C#和MVC中自动完成文本框

时间:2016-01-20 09:09:57

标签: javascript c# asp.net-mvc autocomplete

大家好,感谢您的帮助,

我需要使用C#和MVC中的建议自动填充文本框。

视图中的文本框是:

<div class="col-lg-3 col-md-3 hidden-sm hidden-xs" style="margin-top:2%;">
   <input type="text" class="formLocator" value="Milano" data-date-end-date="0d" id="textLocator" name="searchstring">
   <h4 class="FormTextLocator">Where</h4>
</div>
<div class="hidden-lg hidden-md col-sm-3 col-xs-12" style="margin-top:2%;">
   <input type="text" class="formLocator" value="Milano" data-date-end-date="0d" id="textLocator" name="searchstring">
   <h4 class="FormTextLocator">Where</h4>
</div>

我为此文本框创建了一个javascript代码:

$(function () 
{
    $("#textLocator").autocomplete(
    {
        source: "/Home/AutocompleteSuggestions",
        minLength: 1,
        select: function (event, ui) 
        {
            if (ui.item) 
            {
                $("#textLocator").val(ui.item.value);
                $("form").submit();
            }
        }
    });
});

与之关联的控制器是:

 public JsonResult AutocompleteSuggestions(string searchstring)
 {
     var db = new TocFruit();
     var suggestions = from s in db.city select s.name;
     var namelist = suggestions.Where(n => n.ToString().StartsWith(searchstring.ToLower()));
     return Json(namelist, JsonRequestBehavior.AllowGet);
 }

但所有这些都行不通,但我不明白我做错了什么。

感谢所有人,

罗伯特

2 个答案:

答案 0 :(得分:4)

Jquery UI AutoComplete in MVC

检查以上链接

根据您的代码,您还可以指向2个具有相同id

的TextBox

答案 1 :(得分:0)

确定。现在,在您的帮助下,控制器会返回正确的值列表,但文本框不会显示值。新代码写得如此:

现在代码编写如下:

的Javascript

$(document).ready(function () {
    $("#textLocator").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Home/AutocompleteSuggestions",
                type: "POST",
                dataType: "json",
                data: { term: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return { label: item.name, value: item.name };
                    }))
                }
            })
        },
        messages: {
            noResults: "", results: ""
        }
    });
});

HTML

<div class="col-lg-3 col-md-3 hidden-sm hidden-xs" style="margin-top:2%;">
   <input type="text" class="formLocator" value="Milano" data-date-end-date="0d" id="textLocator" name="searchstring">
   <h4 class="FormTextLocator">dove</h4>
</div>

控制器

public JsonResult AutocompleteSuggestions(string term)
{
   var db = new TocFruit();
   var suggestions = from s in db.city select s.name;
   var namelist = suggestions.Where(n => n.ToString().ToLower().StartsWith(term.ToLower()));
   return Json(namelist, JsonRequestBehavior.AllowGet);
}

非常感谢