С ASP.net MVC возможно ли отправить форму в действие контроллера, которое включает параметры не в форме, а из URL?
Например
Метод действия в GroupController:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(int idOne, int idTwo, Model model)
{ ... }
Маршрут:
"{controller}/{action}/{idOne}/{idTwo}"
Опубликованный URL:
/Employee/Show/1/42
В этом примере форма отправляется на другой контроллер, модель имеет правильное значение, однако остальные параметры имеют значения по умолчанию 0.
Я ожидал, что ModelBinder увидит, что у меня есть два параметра, соответствующих заданному маршруту, и назначит текущие значения 1 и 42 таким же образом, как и операция GET.
Это поведение не поддерживается или я что-то упустил?
EDIT :
Для ясности, форма в представлении Show
для контроллера Employee
содержит форму, которая отправляется на другой контроллер. Мы можем назвать это Group
.
URL-адрес действия формы выглядит следующим образом
/Groups/Create/0/0
Форма декларируется следующим образом
Html.BeginForm("Create", "Groups")
После множества различных перегрузок для Html.BeginForm
я обнаружил, что параметры отображаются только тогда, когда URL-адрес действия формы совпадает с текущим URL-адресом в адресной строке браузера.
Так что, если я перейду к URL /Groups/Create/1/42
, у меня будет новая форма. Если я затем отправлю форму, значения маршрута URL передаются действию POST.