В ASP.NET MVC как я могу использовать помощник Razor @ Url.Content () из кода C #? - PullRequest
51 голосов
/ 09 декабря 2008

Я пытаюсь написать вспомогательное расширение html, которое выводит тег изображения. Мне нужно получить доступ (в коде C #) к чему-то вроде Razor's @ Url.Content (), чтобы получить правильный URL для текущего контекста. Как это сделать?

Ответы [ 6 ]

88 голосов
/ 28 февраля 2009

Используйте следующее для имитации Url.Content в коде.

VirtualPathUtility.ToAbsolute("~/url/");
40 голосов
/ 12 декабря 2008

Вы можете создать свой собственный экземпляр UrlHelper, передав соответствующий ViewContext. Например, чтобы сделать это из помощника изображения:

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

В этот момент вы можете вызвать Url.Content() или любой другой метод UrlHelper.

2 голосов
/ 13 сентября 2011

Да, вы можете.

С контроллера вы можете позвонить:

this.Url.Content("~/Somerelativepath?somethingelse=true");

2 голосов
/ 09 декабря 2008

Что-то вроде этого возможно?

public static string MyHelper(this HtmlHelper h)
{
      string url = h.ViewContext.HttpContext.Request.Url.AbsoluteUri;
}
0 голосов
/ 21 июля 2010

да, используйте этот код, чтобы добавить url.content в ваш код это работа, братан и сест

[образец] var img_btn_edit = VirtualPathUtility.ToAbsolute ("~ / Content / images /cil.png");

0 голосов
/ 09 декабря 2008

Вы можете получить к объекту запроса и, следовательно, URL-адрес, как это:

string fullUrl = HttpContext.Current.Request.Url.AbsoluteUri;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...