С ASP.net MVC возможно POST-форму для действия контроллера, которая включает параметры не в форме, а из URL?
Например
Метод Action в 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.
Не поддерживается ли это поведение, или я что-то не хватает?
ИЗМЕНИТЬ:
Чтобы быть ясным, форма в представлении Show
для контроллера Employee
содержит форму, которая отправляется на другой контроллер. Мы можем назвать его Group
.
URL-адрес действия формы выглядит следующим образом
/Groups/Create/0/0
Форма объявляется следующим образом
Html.BeginForm("Create", "Groups")
После нескольких перегрузок для Html.BeginForm
я обнаружил, что параметры отображаются только в том случае, если URL-адрес действия формы совпадает с текущим URL-адресом в адресной строке браузера.
Итак, если я перейду к URL /Groups/Create/1/42
, у меня будет новая форма. Если я затем отправлю форму, значения маршрута URL будут переданы в действие POST.