使用JSON的MVC自动完成文本框在发布时返回NULL

本文关键字:布时 NULL 返回 文本 JSON MVC 使用 | 更新日期: 2023-09-27 18:26:12

我希望我的搜索框自动完成数据库中的值。当我在搜索框中键入内容时,它正确地击中了控制器,但无论我尝试什么,字符串值都会返回NULL。这是我的代码:

视图(局部视图):

@using (Html.BeginForm("SearchBar", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
    <div class="container">
        <div class="searcharea">
            @Html.TextBox("SearchString", null, new { placeholder = "Type search here..." } )
            <input type="submit" />
        </div>
    </div>
}
<script type="text/javascript">
    $(function () {
        $("#SearchString").autocomplete({
            source: "/Home/AutoCompleteSearch",
            minLength: 1,
            select: function (event, ui) {
                if (ui.item) {
                    $("#SearchString").val(ui.item.value);
                    $("form").submit();
                }
            }
        });
    });
</script>

控制器:

public JsonResult AutoCompleteSearch(string SearchString)
{
    var values = from s in db.Customers
                              select s.CustomerNumber;
    var namelist = values.Where(n => n.ToLower().StartsWith(SearchString));
    return Json(namelist, JsonRequestBehavior.AllowGet);
}

因此,当我在搜索框中键入时,我来到了这个控制器,但字符串SearchString为NULL。我一直在学习这个教程。

使用JSON的MVC自动完成文本框在发布时返回NULL

public JsonResult AutoCompleteSearch(string SearchString)
{
    var values = from s in db.Customers
                              select s.CustomerNumber;
    var namelist = values.Where(n => n.ToLower().StartsWith(SearchString.ToLower()));
    return Json(namelist, JsonRequestBehavior.AllowGet);
}