ASP.NET MVC: перенаправить пользователя на маршрут с параметрами из выпадающего списка - PullRequest
0 голосов
/ 27 июля 2010

У меня есть выпадающий список (тег <select>), заполненный велосипедами (точнее их названиями). Когда пользователь выбирает велосипед в списке, я хочу, чтобы он был перенаправлен на страницу сведений о выбранном велосипеде.

У меня есть маршрут для деталей велосипеда как таковой:

routes.MapRoute("BikeDetails",
                "bike/{bikeId}",
                new {
                    controller = "Bike",
                    action = "Details"
                },
                new { bikeId = @"\d+" });

Как лучше всего решить эту проблему?

Я думаю, что, возможно, мне следует использовать URL-адреса для значений элементов раскрывающегося списка, а затем использовать JQuery для перенаправления на выбранный URL-адрес. Но, имея дело со старым простым ASP.NET, я не могу не думать, что ребята из Microsoft придумали что-то более умное для таких сценариев, как этот.

Любые идеи приветствуются!

Ответы [ 2 ]

2 голосов
/ 27 июля 2010

Я думаю, что ваша идея jQuery действительно подходит, хотя я бы, вероятно, не связывал ее с событием select change, но имел бы кнопку, которая вызывает перенаправление Некоторые браузеры, особенно использующие программы чтения с экрана, плохо работают с событием изменения - запускают его для каждого элемента при прокрутке. Поскольку это уводит вас со страницы, это может быть очень плохо для некоторых пользователей.

Вам, вероятно, также нужно иметь завернутый элемент выбора в форме, которая отправляет сообщение обратно в действие, и маршрут, который позволяет вам перейти к этому действию через сообщение. Это действие может принять URL-адрес в качестве параметра и выполнить перенаправление на URL-адрес. Это покроет вас в случае, если javascript отключен.

0 голосов
/ 27 июля 2010

Вы можете сделать так:

$("#yourselectid").change(function(){
  window.location = "bike/" + $(this).val();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...