Con ASP.net MVC es posible enviar un formulario a una acción del controlador que incluye parámetros que no están en el formulario, sino en la URL?ASP.NET MVC - Método de acción POST con parámetros adicionales desde la dirección URL
Por ejemplo
el método de acción en GroupController:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(int idOne, int idTwo, Model model)
{ ... }
La ruta:
"{controller}/{action}/{idOne}/{idTwo}"
URL Publicado:
/Employee/Show/1/42
En este ejemplo, la forma es siendo publicado en un controlador diferente, el modelo tiene el valor correcto, sin embargo los otros parámetros tienen valores por defecto 0.
El comportamiento que esperaba es que el ModelBinder vería que tengo dos parámetros que coinciden con la ruta dada, y asigne el actual valores de 1 y 42 a los parámetros de la misma manera que funciona una operación GET.
¿No se admite este comportamiento o me falta algo?
EDITAR: Para ser claros, el formulario a la vista Show
para el controlador Employee
contiene un formulario que se anuncio a un controlador diferente. Podemos llamarlo Group
.
La URL de acción forma se parece a esto
/Groups/Create/0/0
se declara La forma de la siguiente manera
Html.BeginForm("Create", "Groups")
Después de probar muchas sobrecargas diferentes para Html.BeginForm
he encontrado que los parámetros sólo se asignan cuando el formulario La URL de acción coincide con la URL actual en la barra de direcciones del navegador.
Así que si navego a la URL /Groups/Create/1/42
tendré un formulario nuevo. Si luego envío el formulario, los valores de ruta de URL se pasan a la acción POST.
Me gustaría tratar de definir la ruta para incluir el modelo y se establece como un valor predeterminado es NULL y ver qué pasa. '{controller}/{action}/{idOne}/{idTwo}/{Model}' –