Подтвердить что ты не робот

В ASP.NET MVC, как я могу использовать помощник Razor @Url.Content() из кода С#?

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

4b9b3361

Ответ 1

Используйте следующее, чтобы имитировать URL-адрес. Код в коде.

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

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

string fullUrl = HttpContext.Current.Request.Url.AbsoluteUri;