Avec ASP.net MVC est-il possible de POST un formulaire à une action du contrôleur qui inclut des paramètres non dans le formulaire, mais à partir de l'URL?ASP.NET MVC - Méthode d'action POST avec des paramètres supplémentaires à partir de l'URL
Par exemple
La méthode d'action en GroupController:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(int idOne, int idTwo, Model model)
{ ... }
L'itinéraire:
"{controller}/{action}/{idOne}/{idTwo}"
URL Posté:
/Employee/Show/1/42
Dans cet exemple, la forme est être posté à un contrôleur différent, le modèle a la valeur correcte, mais les autres paramètres ont des valeurs par défaut 0.
Le comportement que je m'attendais à ce que le ModelBinder verrait que j'ai deux paramètres qui correspondent à l'itinéraire donné, et assigner le courant valeurs de 1 et 42 aux paramètres de la même manière qu'une opération GET fonctionne.
Ce comportement n'est-il pas pris en charge ou manque-t-il quelque chose?
EDIT: Pour être clair, la forme de la vue Show
pour le contrôleur Employee
contient une forme qui est l'affichage à un autre contrôleur. Nous pouvons l'appeler Group
.
L'URL d'action de la forme ressemble à ceci
/Groups/Create/0/0
La forme est déclarée comme suit
Html.BeginForm("Create", "Groups")
Après avoir essayé plusieurs surcharges différentes pour Html.BeginForm
j'ai trouvé que les paramètres ne sont mis en correspondance lorsque le formulaire l'URL de l'action correspond à l'URL actuelle dans la barre d'adresse du navigateur. Donc, si je me rends à l'adresse URL /Groups/Create/1/42
, je vais avoir un nouveau formulaire. Si je soumets ensuite le formulaire, les valeurs d'itinéraire URL sont passées à l'action POST.
Je voudrais essayer de définir la route pour le modèle et la définir comme défaut de null et de voir ce qui se passe. '{controller}/{action}/{idOne}/{idTwo}/{Modèle}' –