我是c#ASP.NET razor页面的新手,我正在使用Microsoft traing中的示例来构建应用程序。当我尝试从电影表中搜索像“哥斯拉”这样的项目时,下面的代码有效。问题是,如果Itry搜索“Godzilla”,“GhostBusters”和“Kazzoky”,它将返回null。
因此,如果searchString是“哥斯拉”,我得到一个结果和“Kazzoky”和“Ghostbusters”biut相同,当我将“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 = parts.Where(s => searchString.Contains(s.Title)); //没有用
我也尝试过电影= movies.Where(s => s.Title.Contains(Where(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 = movies.Where(s => SearchString.Contains(s.Title));
但我正在针对错误的数据集进行测试。例如,对“Gho”的单个搜索将返回Ghostbusters,但是当您只想搜索标题的一部分时,这很好,因为您无法完全记住。
我正在做这个假设,这就是我遇到这个问题的原因。
感谢大家的贡献,我真的很感激。