asp.net mvc 4-linq Contains运算符就像是StartsWith运算符一样工作

时间:2019-05-14 04:01:34

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

控制器:

[HttpPost]
    public JsonResult Index(string search)
    {
        var data = LoadExplore_SP("sp_View_Explore");
        List<ExploreModel> stuff = new List<ExploreModel>();
        foreach (var row in data)
        {
            stuff.Add(new ExploreModel
            {
                Thing_Title = row.Thing_Title
            });
        }
        //Searching records from list using LINQ query  
        var ThingList = (from N in stuff
                        where N.Thing_Title.Contains(search)
                        select new { N.Thing_Title });

        return Json(ThingList, JsonRequestBehavior.AllowGet);
    }

视图:

<script type="text/javascript">
$(document).ready(function () {
    $("#Thing_Title").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Home/Index",
                type: "POST",
                dataType: "json",
                data: { search: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return { label: item.Thing_Title, value: item.Thing_Title };
                    }))

                }
            })
        },
        messages: {
            noResults: "", results: ""
        }
    });
})

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">

        <hr />

        <div class="form-group">

            <div class="col-md-12">
                @Html.EditorFor(model => model.Thing_Title, new { htmlAttributes = new { @class = "form-control" } })

            </div>
        </div>

    </div>
}

我的问题是我无法使linq where子句按应有的方式工作。而不是返回诸如%search%之类的结果,而是返回诸如'search%'之类的所有记录。

您知道为什么会这样吗?

0 个答案:

没有答案