c# - 在 mvc 4 中实现搜索
问题描述
我有一个文本框,用户可以在其中输入他需要搜索的字符串。如果用户只输入一个单词字符串,那么我可以从数据库中检索正确的数据,但是如果用户输入一个多单词字符串,那么我的代码就会失败。
我正在使用 EntityFramework 来获取数据。
这是我使用单个单词字符串获取数据的代码。
public ActionResult SearchResult(string search)
{
var j = objCon.Mobiles.Where(oh => oh.MobileName.Contains(search) || oh.Description.Contains(search));
List<Mobiles> prod = new List<Mobiles>();
foreach (var p in j)
{
Mobiles Mob = new Mobiles();
Mob.Description = p.Description;
Mob.ImgUrl = p.Url;
Mob.MobileName = p.MobileName;
Mob.Price = Convert.ToString(p.Price);
Mob.SlNo = p.SlNo;
prod.Add(Mob);
}
return View("~/Views/Product/Index.cshtml", prod);
}
我尝试使用 split 将字符串分解为单个单词,但无法获得正确的数据。
string str = null;
string[] strArr = null;
int count = 0;
str = //UserInput;
char[] splitchar = { ' ' };
strArr = str.Split(splitchar);
解决方案
string str = null;
string[] strArr = null;
int count = 0;
str = search;
char[] splitchar = { ' ' };
strArr = str.Split(splitchar);
for (count = 0; count <= strArr.Length - 1; count++)
{
string i = strArr[count];
var j = objCon.Mobiles.Where(oh => oh.MobileName.Contains(i) || oh.Description.Contains(i));
//MessageBox.Show(strArr[count]);
foreach (var p in j)
{
Mobiles Mob = new Mobiles();
Mob.Description = p.Description;
Mob.ImgUrl = p.Url;
Mob.MobileName = p.MobileName;
Mob.Price = Convert.ToString(p.Price);
Mob.SlNo = p.SlNo;
prod.Add(Mob);
}
}
当我帮助您解决问题时-这是最终代码
推荐阅读
- mongodb - 使用 Node JS 在 MongoDb 中聚合查询
- react-native - 双花括号上的 React Native 错误,ESLint/Prettier 警告
- javascript - 无法为 aws s3 生成预签名 URL
- html - 如何让 PreMailer.Net 不更改非 ascii 字符的编码?
- xamarin - Xamarin.UITest 与 OS X 10.15 不兼容?
- ios - 颤振应用程序无法运行,无法找出原因
- tensorflow - ” Anaconda Jupyter “内核似乎已经死了。它将自动重新启动。”
- javascript - “无法设置未定义的属性‘jwtClient’”尝试将 Node.js 与 Google 表格一起使用
- r - 如何将表格添加到ggplot?
- python - TypeError:添加的层必须是类Layer的实例。成立: