当用户搜索时,我无法找到如何处理多个单词。示例:搜索:“蓝色盒子”应该能够找到:“一个盒子是蓝色”。我该怎么做?这基本上就是我的 Controller 看起来像 atm 的样子:
public ActionResult Index(string searchString)
{
var posts = from s in _context.Posts
select s;
var postIndexViewModel = new PostIndexViewModel();
if (!String.IsNullOrEmpty(searchString))
{
posts = posts.Where(s => s.Title.Contains(searchString));
}
// More code here
return View(postIndexViewModel);
}
最佳答案
您的问题是您正在使用整个字符串进行包含。这意味着它必须按顺序包含“Blue box”
。
这是您需要做的:
var strings = searchString.Split(' ');
var finalPosts = new List<string>();
if (!String.IsNullOrEmpty(searchString))
{
foreach (var splitString in strings)
{
finalPosts.Add(posts.FirstOrDefault(s => s.Title.Contains(splitString)));
}
}
finalPosts
列表将包含您的结果。
关于c# - ASP :NET MVC multiple words in search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31205509/