ASP.NET 核心剃须刀中的过滤问题

Problems with filtering in ASP.NET core razor

我是 c# ASP.NET razor 页面的新手,我正在使用 Microsoft 培训中的示例来构建应用程序。当我尝试从电影 table 中搜索像 "Godzilla" 这样的项目时,下面的代码有效。问题是,如果我尝试在 "Godzilla"、"GhostBusters" 和 "Kazzoky" 上搜索,它 returns 为空。

所以如果 searchString 是 "Godzilla",我得到的结果与 "Kazzoky" 和 "Ghostbusters" 相同,当我将 "Godzilla,Kazzoky,Ghostbusters" 作为 searchString 传递时,结果是空白页。

请帮忙!!

public async Task OnGetAsync()
{
    var movies = from m in _context.Movie
                 select m;
    if (!string.IsNullOrEmpty(SearchString))
    {
        movies = movies.Where(s => s.Title.Contains(SearchString));
    }

    Movie = await movies.ToListAsync();
}

我试过了

零件 = parts.Where(s =>searchString.Contains(s.Title)); //没用

我也试过了 电影 = movies.Where(s => s.Title.包含(哪里(s=>SearchString.Contains(s.Title))));

但是它抛出了异常...

试试这个。

movies = movies.Where(s => SearchString.Contains(s.Title));

如果您的搜索是逗号分隔的,则需要将其拆分:

var searchTerms = SearchString.Split(',');

movies = movies.Where(s => searchTerms.Contain(s.Title));

感谢大家的投入。我已经解决了问题。

电影 = movies.Where(s => SearchString.Contains(s.Title));

但我是针对错误的数据集对其进行测试的。例如,在 "Gho" 上的一次搜索将 return 捉鬼敢死队但是当你只想搜索标题的一部分时这很好,因为你不能完全记住。

我是在做这个假设,这就是我遇到这个问题的原因。

感谢大家的贡献,非常感谢。