Вы можете поместить множественный выбор внутри формы.Затем у вас есть 2 возможности отправить эту форму:
- Использование кнопки отправки
- Использование события onchange мультиселекции (в этом случае вам придется использовать javascript)
Первый пункт прост:
@using (Html.BeginForm())
{
@Html.ListBoxFor(x => x.SelectedItems, Model.Items)
<button type="submit">Filter</button>
}
Для реализации второго вы можете использовать jQuery и подписаться на событие change мультиселекта.Во-первых, давайте присвоим этому множественному выбору идентификатор, чтобы его было легче выбрать:
@using (Html.BeginForm())
{
@Html.ListBoxFor(x => x.SelectedItems, Model.Items, new { id = "filter" })
}
, а затем в отдельном файле javascript:
$(function() {
$('#filter').change(function() {
// when the selection changes we manually trigger the submission
// of the containing form
$(this).closest('form').submit();
});
});
В обоих случаях действие контроллера, котороемы представляем, чтобы принять массив строк в качестве аргумента, который будет представлять выбранные значения в множественном выборе, которые будут использоваться для фильтрации набора результатов.