Я застрял в очень подробных деталях.Transform Querystring to RouteValue in Razor View
Я хочу, чтобы пользователь мог фильтровать результаты в виде индекса.
Для этого я создал выпадающий список, который получает населенную thourgh моего ViewModel:
@using (Html.BeginForm("Index", "Captains", FormMethod.Get)) {
<div class="row">
<div class="dropdown">
@Html.DropDownList("Name", new SelectList(Model.SomeProperty), new { id = "FilterList" })
</div>
</div>
@* ... *@
}
Кроме того у меня есть небольшой JQuery фрагмент кода для отправки формы на событии изменения:
$('#FilterList').on('change', function() {
var form = $(this).parents('form');
form.submit();
});
маршрут я создал для этого выглядит следующим образом:
routes.MapRoute(
name: "IndexFilter",
url: "{controller}/{action}/{Name}",
defaults: new { Name = UrlParameter.Optional}
);
После submi t event Я переадресовываюсь на URL-адрес /Index?Name=ChosenValue
Это абсолютно правильная фильтрация. Однако я хотел бы избавиться от запроса и преобразовать маршрут в /Index/ChosenValue
.
Примечание: «Имя», «ChosenValue» & «SomeProperty» - это просто фиктивные замены для имен фактических свойств.
Кончик в натуральной форме - почему бы не использовать .change вместо .on ('change')? – Dreamcasting
Вам нужно что-то сделать в методе действий контроллера, или вы хотите только перенаправить на '/ Index/ChosenValue'? – ekad
Сколько у вас сопоставлений маршрутов? Может быть, это ниже некоторого более общего картографирования и уловлено раньше? – Mariusz