Маршрутизация MVC ASP.NET Map не работает с запросом формы GET

С учетом-

 @using (Html.BeginForm("PageName","ControllerName", FormMethod.Get))
{
  <input type="hidden" name="categoryName" value="Insurance" />                        
  <input type="hidden" id="cityName6" value="Irvine" name="cityName" />
  <input type="hidden" name="page" value="1" />
  <input type="submit" class="btn btn-default" value="Insurance" />
}

В RouteConfig-

routes.MapRoute(
                "SomethingRouteName",
                "{categoryName}/{cityName}/{page}",
                new { controller = "ControllerName", action = "PageName" }
);

Я хочу, чтобы URL-адрес отображался так: «Страхование/Ирвин/1».

Это отлично работает, когда я использую гиперссылку вместо метода получения формы.

@Html.ActionLink("Insurance", "PageName", "ControllerName", new{ categoryName = "Insurance", cityName = "Irvine", page = 1})

//Показанный URL: Insurance/Irvine/1, как и ожидалось. Но я должен использовать метод формы GET, поэтому этот способ гиперссылки бесполезен.

Пожалуйста помоги


person Manish0890    schedule 27.01.2015    source источник


Ответы (1)


Вы не передаете никаких значений маршрута в Html.BeginForm, поэтому ваш визуализированный элемент формы выглядит так:

<form action="/ControllerName/PageName" method="get">

</form>

Поэтому, когда вы нажимаете «Отправить», он просто добавляет значения формы в виде строки запроса.

Чтобы исправить это:

@using (Html.BeginForm("PageName", "Home", new {categoryName = "Insurance", cityName = "Irvine", page = "1"}, FormMethod.Get))
{
    <input type="submit" class="btn btn-default" value="Insurance" />
}
person Jim Skerritt    schedule 27.01.2015
comment
О, понял. Работал как шарм. Спасибо Джим - person Manish0890; 28.01.2015
comment
@ Manish0890, Какой смысл в этом, а не в использовании гиперссылки? - person ; 28.01.2015
comment
Требования для приема на работу. Это был просто простой пример для меня, чтобы понять его работу. Теперь я могу использовать его в реальном сценарии. - person Manish0890; 28.01.2015