2014-04-02 71 views
0

我有一個由onkeydown事件觸發的ajax搜索功能。服務器將來自productcontroller的Json對象(Product對象)返回到視圖。查找產品名稱包含搜索字符串的產品對象並忽略大小寫敏感性

包含搜索工作只是很好,除了一個大問題。區分大小寫。用戶應該能夠輸入較低,較高和混合的較低和較高的情況,並且仍然可以得到相同的結果。我知道問題出在控制器方法,它看起來像這樣的時刻:

public JsonResult TextChangeEventSearch(string searchString) 
    { 
     var products = _productRepository.GetAll().ToList(); 

     //This line right here performs the search, but I want it ignore case sensitivity as well. 
     var result = products.Where(p => p.Name.Contains(searchString)); 


     var jsonList = result.Select(p => new 
     { 
      Name = p.Name, 
      Status = p.Status, 
      Genre = p.Category.Name, 
      Value = p.Id.ToString(), 
      Warehouse = p.Stock 
     }); 


     return Json(jsonList.ToList(), JsonRequestBehavior.AllowGet); 
    } 

的stringcomparison.ordinalignorecase方法後,實際上,我和我一直在試圖給它的結果LINQ查詢中組合線。但是當我試圖這樣做時,總會有語法問題,所以我明確地做了錯誤的事情。

任何想法,建議和解釋將不勝感激。

那麼我該如何解決這個問題呢?

回答

4

試試這個

products.Where(p => p.Name.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0); 

,或者換到一個擴展。

+0

工作了第一次。謝謝! – Assassin87

相關問題