Regex 如何过滤特殊字符或与MVC中的搜索字符串不匹配的任何内容
我想过滤输入的搜索字符串,使其不接受除匹配字符串以外的任何内容进行搜索 这是我的控制器代码:Regex 如何过滤特殊字符或与MVC中的搜索字符串不匹配的任何内容,regex,asp.net-mvc,asp.net-mvc-4,Regex,Asp.net Mvc,Asp.net Mvc 4,我想过滤输入的搜索字符串,使其不接受除匹配字符串以外的任何内容进行搜索 这是我的控制器代码: public ActionResult SearchProduct(string SearchString) { FlipcartDBContextEntities db = new FlipcartDBContextEntities(); if(ModelState.IsValid) {
public ActionResult SearchProduct(string SearchString)
{
FlipcartDBContextEntities db = new FlipcartDBContextEntities();
if(ModelState.IsValid)
{
// if ModelState is true
string noResult = "Search Result Not Found";
var products = from p in db.Products select p;
if (!String.IsNullOrEmpty((SearchString).Trim()))
{
products = products.Where(s => s.ProductName.Contains(SearchString));
return View(products.ToList());
}
else
{
ViewBag.Message = noResult;
return View(new List<Product>());
}
}
else
{
ModelState.AddModelError("", "Search not successful");
}
return View();
}
未找到的搜索结果仅显示空条目..但我希望它显示与搜索字符串不匹配的任何其他字符
我该怎么做 试试这个:
if(ModelState.IsValid)
{
// if ModelState is true
string noResult = "Search Result Not Found";
//ternary expression to return a new list if Search string is null or empty
var products = string.IsNullOrEmpty(SearchString.Trim())
? new List<Product>()
: db.Products
.Where(s => s.ProductName.Contains(SearchString));
//set viewbag message if list is empty
if(!products.Any())
{
ViewBag.Message = noResult;
}
return View(products.ToList());
}
else
{
ModelState.AddModelError("", "Search not successful");
}