Это, как вы наверняка знаете маршрут по умолчанию:
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, если это имеет значение.