В моем частичном представлении MVC есть таблица на основе foreach:
</p>
<pre><code><% foreach (var item in Model) { %>
<tr>
<td><%= Html.Encode(item.FirstName) %></td>
<td><%= Html.Encode(item.LastName) %></td>
<td><%= Html.Encode(item.LastVisit) %></td>
</tr>
<% } %>
Рядом с ним у меня есть другой элемент управления с кучей полей, которые позволяют выполнять поиск различными способами, включая раскрывающиеся списки параметров (поиск по определенным идентификаторам и т. Д.):
</p>
<pre><code><select>
<option value="1">Local</option>
<option value="2">Public</option>
<option value="3">Special</option>
</select>
<input type="text" name="freeTextSearch" />
<input type="text" name="floorNumber" />
Буду ли я использовать здесь собственный ModelBinder или просто объект "ContactFilter", подобный этому:
</p>
<pre><code>public class ContactFilter
{
public Int32 ContactSourceId;
public String FreeTextSearch;
public Int32 FloorNumber;
}
, а затем получить к нему доступ таким образом:
</p>
<pre><code>public ActionResult Filter(ContactFilter filter)
{
// do filtering, return view
}
Или есть лучший способ сделать это? Другая проблема, с которой я сталкиваюсь, заключается в том, что мне необходимо включить в фильтр параметры сортировки и подкачки (текущая страница, поле сортировки, направление). Направление сортировки необходимо преобразовать из строки в экземпляр перечисления SortDirection. Так что, думаю, я больше не могу использовать модель Binder по умолчанию для этого, или я могу?