Стандартный ActionLink
будет производить что-то вроде mysite.com/rar/hello/1/2010-01-01/, если вы захотите использовать магию маршрута. Это хорошо для якорных тегов и использования Html.ActionLink
, однако, что если я хотел бы иметь форму, использующую запрос GET, чтобы иметь тот же эффект? Итак, форма выглядит следующим образом:
@using(Html.BeginForm("MyAction", "MyController", new { id = 20, something = "2010-01-01" }))
Получение URL-адреса, например site.com/20/2010-01-01 вместо mysite.com?id=20&something=2010-01-01
Можно ли это сделать без использования JavaScript? Мои маршруты верны, потому что ActionLink
s генерирует правильный URL, но с теми же параметрами запрос GET через форму генерирует ужасный URL.
Приветствия
--- РЕДАКТИРОВАТЬ ---
Я выполнил поиск в Google по этой же проблеме, и угадайте, что? Этот ответ является первым. Я даже не вспомнил, как спрашивал.
Так что я снова столкнулся с той же проблемой. Это так просто:
Я нажимаю на ссылку, и я перехожу на URL, например site.com/10/100/Param
. У меня есть форма с такими же значениями маршрута, которая выглядит примерно так:
@using(Html.BeginForm("Action", "Controller", FormMethod.Get)) {
@Html.Hidden("param1", 10)
@Html.Hidden("param2", 110)
@Html.Hidden("param3", "MyOtherParam")
}
Затем, когда я отправлю эту форму, я ожидаю увидеть новый маршрут как site.com/10/110/MyOtherParam
.
Единственный способ, которым я могу думать об этом, - это отправить сообщение в метод действия, а затем перенаправить оттуда.
Есть идеи?