Con ASP.net MVC è possibile POSTARE un modulo a un'azione del controllore che include parametri non presenti nel modulo, ma dall'URL?ASP.NET MVC - Metodo di azione POST con parametri aggiuntivi dall'URL
Per esempio
Il metodo d'azione in GroupController:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(int idOne, int idTwo, Model model)
{ ... }
Il percorso:
"{controller}/{action}/{idOne}/{idTwo}"
URL Pubblicato:
/Employee/Show/1/42
In questo esempio, il modulo viene essere pubblicato su un altro controller, il modello ha il valore corretto, tuttavia gli altri parametri hanno valori predefiniti 0.
Il comportamento che mi aspettavo è che il ModelBinder vedrebbe che ho due parametri che corrispondono al percorso specificato e assegnano la corrente valori di 1 e 42 ai parametri nello stesso modo in cui un'operazione GET funziona.
Questo comportamento non è supportato o mi manca qualcosa?
EDIT: Per essere chiari, il modulo a vista Show
per il controller Employee
contiene una forma che viene intervento a un controller diverso. Possiamo chiamarlo Group
.
L'URL di azione sotto forma assomiglia a questo
/Groups/Create/0/0
La forma è dichiarato come segue
Html.BeginForm("Create", "Groups")
Dopo aver provato molti sovraccarichi diversi per Html.BeginForm
ho trovato che i parametri sono mappati solo quando il modulo l'URL di azione corrisponde all'URL corrente nella barra degli indirizzi del browser.
Quindi, se si naviga all'URL /Groups/Create/1/42
avrò un nuovo modulo. Se poi invio il modulo, i valori della route URL vengono passati all'azione POST.
vorrei provare la definizione del percorso per includere il modello e impostarlo come predefinito è NULL e vedere cosa succede. '{controller}/{action}/{idOne}/{idTwo}/{Model}' –