我是C#ASP.NET剃须刀页面的新手,并且我使用Microsoft Traing中的示例来构建应用程序。当我尝试从电影表中搜索“ Godzilla”之类的项目时,下面的代码有效。问题在于,如果Itry在“ Godzilla”,“ GhostBusters”和“ Kazzoky”上进行搜索,则返回null。
因此,如果searchString是“ Godzilla”,则当我将“ Godzilla,Kazzoky,Ghostbusters”作为searchString传递时,我得到的结果与“ Kazzoky”和“ Ghostbusters” biut相同,结果是空白页。
请帮助!
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)); //努力工作
我也尝试过 电影=电影.where(s => s.Title.Contains(Where(s => SearchString.Contains(s.Title))));
但是它抛出了异常...
答案 0 :(得分:0)
尝试这个。
movies = movies.Where(s => SearchString.Contains(s.Title));
答案 1 :(得分:0)
如果您的搜索用逗号分隔,则需要将其拆分:
var searchTerms = SearchString.Split(',');
movies = movies.Where(s => searchTerms.Contain(s.Title));
答案 2 :(得分:0)
感谢大家的投入。我已经解决了问题。
电影=电影。哪里(s => SearchString.Contains(s.Title));
但是我正在针对错误的数据集进行测试。例如,对“ Gho”进行一次搜索将返回“捉鬼敢死队”,但这很好,当您只想搜索部分标题时,因为您可能记不清了。
我正在做这个假设,这就是为什么我遇到这个问题。
非常感谢大家的贡献。