0

我正在尝试修改我在控制器上的搜索,以便它能够计算用户在搜索字符串中键入的匹配结果的数量。这样用户将搜索电影名称并且有 1 个匹配的电影一条消息说“1 部电影符合您的搜索条件:‘终结者’”。

到目前为止,这是我的代码,我没有错误,它可以很好地搜索数据,但不计算结果的数量。如果有人知道我需要做什么才能让搜索显示一条消息,那将非常有帮助。搜索工具有效,但我需要计算有多少与数据匹配并在没有结果或是否有结果以及有多少时显示一条消息。

谢谢

public ViewResult Index(string sortOrder, string searchString)
    {
        ViewBag.NamesSortParm = string.IsNullOrEmpty(sortOrder) ? "Name desc" : "";
        ViewBag.MoviesSortParm = sortOrder == "MovieID" ? "Name" : "Director";
        var Movies = from s in MoviesRepository.GetMovies ()
                    select s;
        if (!string.IsNullOrEmpty(searchString))
        {
            Movies = Movies.Where(s => s.Name.ToUpper().Contains(searchString.ToUpper())
                                   || s.Director.ToUpper().Contains(searchString.ToUpper()));
        int count = Movies.Count();
        if (count == 0)
        {
            ViewBag.Message = "No matches found";
        }
        else
        {
            ViewBag.Message = " Results";
        }  }
        switch (sortOrder)
        {
            case "Name":
                Movies = Shows.OrderByDescending(s => s.Name);
                break;
            case "Director":
                Movies = Movies.OrderByDescending(s => s.Director);
                break;
            default:
                Movies = Movies.OrderBy(s => s.Synopsis);
                break;
        }






        return View(Movies.ToList());





    }
4

1 回答 1

1

对我来说似乎是一个错字。替换这一行:

ViewBag.Message = " Results";

有了这个:

ViewBag.Message = count + " Results";

另外,请确保将 ViewBag.Message 放在 View 的某处:

<div> @ViewBag.Message </div>
于 2012-04-14T20:33:28.563 回答