Это, как вы наверняка знаете, маршрут по умолчанию:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Start", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Допустим, я использую метод BeginForm () следующим образом:
@using (Html.BeginForm("MyAction", "MyController", new { id = 4 }))
Это отобразит следующий тег формы:
<form method="post" action="/MyController/MyAction/4">
Теперь предположим, что я создал собственный маршрут:
routes.MapRoute(
"MyCustomRoute", // Route name
"MyController/{id}/{action}", // URL with parameters
new { controller = "MyController", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Когда я создаю форму, мне бы хотелось, чтобы она выглядела следующим образом:
<form method="post" action="/MyController/4/MyAction">
Однако, если я использую BeginForm (), как в примере выше, я получу URL, который соответствует маршруту по умолчанию. Есть ли способ указать BeginForm () использовать мой собственный маршрут вместо маршрута по умолчанию при создании URL-адреса для действия? Или BeginForm () всегда создает URL-адреса, которые соответствуют шаблону маршрута по умолчанию?
Я использую asp.net mvc 3, если это имеет значение.