在上一篇介紹完了搜索功能的概念和思路之後,在這一篇開始要看實作的部份。
通常寫Mvc都是從Model開始,因此這一篇將來看一下搜索功能所會使用到的ViewModel
同步發表於我的部落格:http://alantsai2007.blogspot.com/2014/10/BuildYourOwnApplicationFrameworkOnMvc-21-IndexPage-ViewModel.html
ViewModel的內容
首先,搜索的ViewModel必然會有兩個Property:
搜索條件搜索結果
因此,我們會先從這兩個部份的Property來看起。
搜索條件的ViewModel
搜索條件會有一定有的欄位和各個domain所需要的欄位,因此會先定義一個Base,好方便之後domain來繼承並且提供其他相關欄位。
一定會有的欄位像是:
每頁筆數目前頁數排序欄位排序順序
Domain相關的欄位就依照各自的需求,例如假設是一篇文章,可能會有以「標題」做搜索或者以「內文」做搜索。
因此,程式碼會如下:
/// <summary>
/// 搜索 Form 的 ViewModel base。定義搜索必須要有的相關欄位。
/// </summary>
public abstract class SearchFormViewModelBase : ISearchFormViewModelBase
{
/// <summary>
/// 目前頁數的值
...