通过 Ajax 在 ASP.NET MVC 中发布搜索表单会导致 500(内部服务器错误)

Posting a search form via Ajax in ASP.NET MVC results in 500 (Internal Server Error)

所以我获得此设置的方式涉及控制器文件夹中的 ClientController。在视图文件夹中,我有 SearchClient.cshtml 和 _SearchClients.cshtml。我正在使用 Ajax 并按照此 link 中的教程进行操作:http://techfunda.com/howto/291/search-database-using-ajax 让我的搜索工作。

我的控制器中的方法如下所示:-

    public ActionResult SearchClient()
    {
        return View();
    }

    public PartialViewResult _SearchClients(string searchString = "")
    {
        var clients = repository.Get(c => c.isDeleted == false);
        clients = clients.Where(s =>
                                    (s.FirstName.Contains(searchString)) ||
                                    (s.MiddleName.Contains(searchString)) ||
                                    (s.LastName.Contains(searchString))
                                ).ToList();
        return PartialView(clients);
    }

最后,这是局部视图:-

        @model IEnumerable<Entities.Client>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.FirstName</td>
                <td>@item.MiddleName</td>
                <td>@item.LastName</td>
                <td>@item.Phone</td>
                <td>@item.Email</td>
                <td>@item.AgencyID</td>
                <td>@item.StreetAddress</td>
                <td>@item.City</td>
                <td>@item.PostalCode</td>
                <td>@item.Province</td>
            </tr>
        }

我认为 MidddleName 为空,必须将其从搜索中删除。同时,我必须检查字符串是否为 null 或为空。这是控制器操作。

    public PartialViewResult _SearchClients(string searchString = "")
    {
        if (!String.IsNullOrEmpty(searchString))
        { 
            var searchedClient = clients.Where(s =>
                                    (s.FirstName.Contains(searchString)) ||

                                    (s.LastName.Contains(searchString))
                                ).ToList();
            return PartialView(searchedClient);
        }
        return PartialView(clients);
    }

希望这对某人有所帮助。