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



我是C#asp.net剃须刀页面的新手,我正在Microsoft Trawing中使用示例来构建应用程序。当我试图从电影表中搜索"哥斯拉"之类的项目时,下面的代码就起作用。问题是,如果要在"哥斯拉","捉鬼敢死队"one_answers" kazzoky"上搜索它,它将返回null。

因此,如果搜索串是"哥斯拉",我会得到一个结果,而对于" Kazzoky"one_answers" Ghoshbusters" Biut时,我会得到同样的结果,当我通过" Godzilla,Kazzoky,kazzoky,Ghostbusters"作为搜索string,结果是空白页面。

请帮助!

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 = parts。//不工作

我也尝试了电影=电影。where(s => s.title.contains(其中(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));

感谢您的输入。我解决了问题。

电影=电影。

但是我正在针对错误的数据集进行测试。例如,对" GHO"的单个搜索将返回Ghostbusters,但是当您只想搜索标题的一部分时,这很好,因为您不完全记住。

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

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

最新更新