在asp.net mvc(razor)中自动完成

时间:2013-05-01 21:03:03

标签: asp.net-mvc razor autocomplete

我正在尝试在我的网站上实现自动完成功能,但无法正常工作。

以下是我的观点代码:

<script src="~/Scripts/jquery-ui-1.8.20.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-ui-1.8.20.min.js" type="text/javascript"></script>

<script type="text/javascript">
    $(function () {
        $("#SearchString").autocomplete({
            source: "/Test/AutocompleteSuggestions",
            minLength: 1,
            select: function (event, ui) {
                if (ui.item) {
                    $("#SearchString").val(ui.item.value);
                    $("form").submit();
                }
            }
        });
    });
</script>

@using (Html.BeginForm()) 
{ 
    <p> 
        Find by name: @Html.TextBox("SearchString")   
        <input type="submit" value="Search" /></p> 
}

以下是我的autoComplete控制器操作的代码:

    public JsonResult AutocompleteSuggestions(string searchstring)
    {

      var suggestions = from s in db.Students
                        select s.Name;
      var namelist = suggestions.Where(n => n.ToLower().StartsWith(searchstring.ToLower()));
      // return namelist.ToList();
      return Json(namelist, JsonRequestBehavior.AllowGet);
    }

任何人都可以帮助我吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

你正试图通过IQueryable。尝试用

替换它
return Json(namelist.ToList(), JsonRequestBehavior.AllowGet);

如果仍然无效。

尝试将“searchString”替换为“term”

public JsonResult AutocompleteSuggestions(string term)

我读过一篇文章,你必须使用“术语”查询字符串。但我不太确定。