首页 > 解决方案 > 在 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);

标签: c#asp.net-mvcentity-framework

解决方案


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);
            }
        }

当我帮助您解决问题时-这是最终代码


推荐阅读