166 votes

Appelez UrlHelper dans modèles dans ASP.NET MVC

J’ai besoin de générer des URLs dans un modèle dans ASP.NET MVC. Je voudrais appeler quelque chose comme UrlHelper.Action() qui utilise les routes pour générer l’URL. Je ne me dérange pas remplir les blancs habituelles, nom d’hôte, le régime et ainsi de suite.

Y a-t-il n’importe quelle méthode que je peux appeler pour ça ? Est-il possible de construire un UrlHelper ?

283voto

Omar Points 16654

Conseil utile, dans toutes les applications ASP.NET, vous pouvez obtenir une référence du HttpContext actuel

qui est dérivé de System.Web. Par conséquent, ce qui suit fonctionnera n’importe où dans une application ASP.NET MVC :

Exemple :

Appeler le `` propriété sur un objet de MyModel créé renvoie l’Url valide pour afficher le modèle basé sur le routage dans Global.asax

70voto

Pablo Points 44881

J’ai comme réponse d’Omar, mais cela ne fonctionne pas pour moi. Juste pour mémoire, il s’agit de la solution que j’utilise maintenant :

50voto

Nathan Taylor Points 13582

Un UrlHelper peut être construit à partir d’une action de contrôleur par ce qui suit :

En dehors d’un contrôleur, un UrlHelper peut être construit en créant un objet RequestContext partir le RouteTable.Routes RouteData.

(Basé sur la réponse de Brian, avec une correction mineure code ajoutée.)

8voto

Brian Mains Points 31772

Oui, vous pouvez instancier. Vous pouvez faire quelque chose comme :

est une propriété statique, donc vous devriez être OK pour obtenir un référence, contient une référence à , et `` qui délivre.

-30voto

user246874 Points 41

Je pense que ce que vous recherchez est la suivante :

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