在上一篇介紹完了如何顯示搜索表單之後,一個基本的通用搜索功能就完成了。
不過,其實有些部份還可以在加強,舉例來說,目前搜索是一定要完全符合才搜索的到,但是這樣就失去了很多好處,畢竟如果完全符合才搜索的到,那基本上等於搜索不到。
還有,假設今天我們搜索結果是要給使用者看的,通常都會有所謂的上下架起訖時間和是否啟用,當符合條件才可以看,這一部份其實自動搜索也可以幫到我們。
因此這一篇將會介紹未來如何在擴充自動搜索功能和在搜索做一些客制處理,符合只搜索出前臺使用者看的條件。
同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-25-IndexPage-AutomaticSearch-improved.html
以Like的方式搜索
第一個要處理的是針對string類型的用like方式做搜索。要用Like方式做搜索,就要用到Linq裡面的Contain()語法:
<!-- wp:paragraph -->
<p>/// <summary><br>/// 依照Search Form ViewModel的值來設定Where的內容。<br>/// </summary><br>/// <typeparam name="T">通常是EF的Entity</typeparam><br>/// <param name="data">要被處理的資料</param><br>/// <param name="searchForm">Search Form Viewmodel的值</param><br>/// <returns>有增加OrderBy的IQueryable</returns><br>public static IQueryable<T> DynamicWhere<T>(this IQueryable<T> data, ISearchFormViewModelBase searchForm)<br>{<br>var...