33 votes

Obtenez ControllerName et ActionName et remplissez les ViewData dans Master Page ?

J'ai un `` qui sera hérité de tous les contrôleurs. Dans le constructeur, j'essaie de remplir les ViewData en utilisant le ControllerName et l'ActionName.

Je ne vais pas passer le ControllerName et le Nom d'action comme viewData. J'ai une méthode qui a besoin du ControllerName et de l'ActionName et j'ai besoin de passer la valeur de retour de la méthode comme viewData.

Comment puis-je faire cela?

63voto

eu-ge-ne Points 17847

Ne pas utiliser `` . Utilisez-le dans votre Site.Master à la place:

SO - Obtenir le nom du contrôleur et la méthode d'action dans la vue dans ASP.Net MVC

6voto

José Silva Points 26

Essayez ceci:

3voto

James S Points 2497

En supposant que je lis votre message correctement, et vous n'essayez pas d'accéder au contrôleur / noms d'action dans la vue, mais INSTEAD essayer de faire quelque chose avec eux, et de mettre le résultat dans les viewdata:

Vous ne pouvez pas le faire dans le constructeur parce que le contexte n'a pas encore été créé. Vous devez remplacer la méthode Initialize :

(Remarquez que vous pouvez passer dans seulement le ControllerContext.RouteData à votre fonction et laissez-le choisir les valeurs dont il a besoin.)

1voto

Wyatt Barnett Points 12541

J'avais besoin d'obtenir à ces beaucoup de vues, et je l'ai frappé d'un angle légèrement différent - j'ai écrit quelques méthodes d'extension à HtmlHelper pour donner le ControllerName actuel et ActionName. Un peu plus facile à manipuler car vous n'avez pas besoin de vous soucier de plonger dans le sac ViewData[] ou d'injecter des trucs à des endroits appropriés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X