53 votes

Dans ASP.NET MVC, comment utiliser l'aide de Razor @ Url.Content () à partir de code C #?

J'essaie d'écrire une extension d'assistance HTML qui génère une balise d'image. J'ai besoin d'accéder (dans le code C #) à quelque chose comme l'aide de @ Url.Content () de Razor pour obtenir l'URL appropriée pour le contexte actuel. Comment est-que quelqu'un peut faire ça?

90voto

Schotime Points 6067

Utilisez ce qui suit pour imiter Url.Content dans le code.

 VirtualPathUtility.ToAbsolute("~/url/");
 

41voto

itsmecurtis Points 1815

Vous pouvez créer votre propre instance de UrlHelper en transmettant le ViewContext approprié. Par exemple, pour le faire depuis un assistant d'image:

 public static string CustomImage(this HtmlHelper html)
{
    var Url = new UrlHelper(html.ViewContext.RequestContext);
}
 

À ce stade, vous pouvez appeler Url.Content() ou toute autre méthode UrlHelper .

2voto

Tim Scott Points 7043

Quelque chose comme ça peut-être?

 public static string MyHelper(this HtmlHelper h)
{
      string url = h.ViewContext.HttpContext.Request.Url.AbsoluteUri;
}
 

2voto

2voto

Andrew Harry Points 5488

Oui, vous pouvez.

Depuis un contrôleur, vous pouvez appeler this.Url.Content ("~ / Somerelative Path? Quelqueelse = true");

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