Я пытаюсь написать html вспомогательное расширение, которое выводит тег изображения. Мне нужно получить доступ (внутри кода С#), что-то вроде помощника Razor @Url.Content(), чтобы получить правильный URL для текущего контекста. Как это сделать?
В ASP.NET MVC, как я могу использовать помощник Razor @Url.Content() из кода С#?
Ответ 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;