J'écris une méthode d'aide pour ASP.NET MVC et j'ai besoin d'appeler Url.Content pour obtenir une URL appropriée pour le contexte. Cependant, afin de créer un nouvel UrlHelper(), je dois obtenir le RequestContext actuel (System.Web.Routing.RequestContext pour être précis) et je ne sais pas comment l'attraper. Quelqu'un sait?Comment accéder au System.Web.Routing.RequestContext actuel à partir d'une méthode d'assistance personnalisée dans ASP.NET MVC?
Répondre
Remarqué cela était encore sans réponse. À partir de MVC 1.0, vous pouvez faire:
public static string NewHelperMethod(this HtmlHelper helper)
{
UrlHelper url = new UrlHelper(helper.ViewContext.RequestContext);
Je voulais savoir comment faire cela à partir du contrôleur, cette réponse m'a donné assez d'informations pour comprendre que je voulais ControllerContext.RequestContext. – lambacck
Ne pas en créer un nouveau. Il suffit de prolonger la UrlHelper existante, tout comme vous le feriez prolongez HtmlHelper:
public static string IdLink(this UrlHelper helper, Guid id)
{ //...
Si vous devez utiliser les deux HtmlHelper et UrlHelper, passer un d'entre eux en tant que régulier (non « ce ») argument.
Comme mentionné ci-dessus, il suffit d'étendre le HtmlHelper et le contexte est exposé de cette manière. Par exemple:
public static string ExtensionMethodName(this HtmlHelper html,object o)
{
html.ViewContext.HttpContext.Request.Uri ... etc
}
Vous avez peut-être trouvé une réponse ailleurs, mais ici;
Dans une action de contrôleur, vous pouvez accéder à la RequestContext actuelle comme ceci:
public ActionResult SomeAction(){
var helper = new UrlHelper(this.ControllerContext.RequestContext);
...
}
Si le IHttpHandler actuel est MvcHandler, vous pouvez utiliser
((MvcHandler)HttpContext.Current.Handler).RequestContext
C'est en fait ce dont j'avais besoin ... d'un contexte vraiment statique – Kevin
Sauvé ma journée, merci beaucoup! –
- 1. ASP.NET MVC: Comment accéder à mon modèle fortement typé à partir d'une méthode d'extension HtmlHelper?
- 2. comment accéder au mot actuel dans un programme
- 3. ASP.Net MVC personnalisée d'authentification
- 4. Comment accéder au JUnitCore actuel pour ajouter un écouteur?
- 5. Comment puis-je accéder aux variables à partir d'URL provenant de la méthode GET dans ASP.net?
- 6. Récupérez le nom de vue actuel dans ASP.NET MVC?
- 7. Méthode d'accès à partir d'un contrôle utilisateur dans ASP.net
- 8. Comment utiliser une méthode d'extension dans une vue ASP.NET MVC?
- 9. Accéder à l'objet à partir de codebehind dans asp.net
- 10. Accéder au contenu à écrire dans le navigateur dans ASP.NET
- 11. Comment afficher une page 404 personnalisée dans ASP.NET-MVC?
- 12. Comment accéder au contenu d'un contrôle ASP.NET?
- 13. Comment obtenir l'utilisateur actuel dans une application MVC?
- 14. Accéder au contrôle, ajax, asp.net
- 15. Fournisseur d'appartenance personnalisée ASP.NET MVC Web.config Erreur
- 16. Comment utiliser au mieux l'en-tête Expires dans ASP.NET MVC?
- 17. ASP.NET MVC: renvoi du fichier texte brut à télécharger à partir de la méthode du contrôleur
- 18. Accès à la méthode statique personnalisée PHP
- 19. Comment accéder à ActiveRecord :: AutosaveAssociation.marked_for_destruction? à partir de modèle parent
- 20. comment accéder à scriptData à partir de uploadify dans le contrôleur MVC d'asp.net
- 21. Comment faire 4 colonnes à travers dans ASP.NET MVC - Comment faire pour que mon code actuel suce moins
- 22. Accéder au contrôleur dans une application Cocoa
- 23. Comment accéder à RouteData à partir du code-behind?
- 24. Route ASP.NET MVC personnalisée dans des dossiers imbriqués
- 25. Django - accéder au RequestContext à partir d'un filtre personnalisé
- 26. Accéder au fichier Global .resx dans ASP.Net Afficher la page
- 27. Accéder au contrôle d'une page à partir d'une autre page
- 28. Comment accéder à certaines données dans une balise de script dans ASP.NET MVC?
- 29. Besoin d'aide/conseil avec une classe ASP.NET MVC IAuthorizationFilter personnalisée
- 30. Comment puis-je obtenir l'utilisateur (IPrincipal) à partir d'une vue partielle dans ASP.NET MVC?
L'emplacement de contexte dépendra de ce que la La méthode d'extension va s'étendre. Est-ce que cela sera utilisé dans une vue, un contrôleur ou ailleurs? –