2010-06-30 4 views
39

J'ai utilisé Html.Action("ActionName", "ControllerName") pour invoquer des actions enfants entre les contrôleurs sans avoir besoin d'avoir la vue dans Views \ Shared. Cela a fonctionné très bien pour afficher des choses comme des informations de session ou de cookie. Au lieu de simplement accéder aux cookies, je voudrais passer des paramètres supplémentaires à Html.Action("ActionName", "ControllerName") afin que l'action puisse exécuter un code différent en fonction des données transmises à la vue d'origine. Dois-je utiliser une méthode différente pour transmettre des paramètres à une action enfant dans un autre contrôleur? Comment pourrait-on accomplir cela?Comment puis-je transmettre des paramètres à une action en utilisant Html.Action() dans ASP.NET MVC?

Répondre

84

Vous pouvez spécifier des données supplémentaires dans la propriété RouteValues ​​comme ceci.

Html.Action("Controller","Name", new { id = 1 }) 
+2

Aw doux !!! J'ai vu RouteValues ​​dans l'intelisense mais je n'ai pas utilisé ce format. J'ai essayé 'Html.Action (" Action "," Controller ", model.Paramter)'. Je vais essayer ça tout de suite. – quakkels

+0

Comment passez-vous une chaîne, comme le texte, ou l'identifiant d'un élément de la liste déroulante à remplissage automatique? – antman1p

+1

@ antman1p Cela ressemble à une nouvelle question, pas un commentaire. Poster un lien vers la nouvelle question ici et je vais aider autant que possible. Une chose, il semble que ce que vous essayez de faire se passe chez le client, car cela dépend de l'interaction avec l'utilisateur (navigateur), alors que cette question se réfère en particulier à la façon d'obtenir un lien vers une action qui inclut un paramètre rendu sur une vue du côté serveur. –

-1

Pour ajouter un peu sur cette question, j'utilise ASP.Net MVC 5 et je pourrais réussir à y parvenir avec ce code:

@Html.Action("foo",new {parameter1=1}) 
+2

C'est une surcharge de la même méthode. Dans cette surcharge, il est supposé que vous appelez le même contrôleur que celui utilisé pour afficher la vue actuelle et que l'action est "foo". Il y a quelques autres surcharges à mentionner: https://msdn.microsoft.com/fr-fr/library/system.web.mvc.html.childactionextensions.action%28v=vs.118%29.aspx –

Questions connexes