在ASP.NET MVC中,我如何使用C#代码中的Razor @ Url.Content()助手?

我试图写一个html助手扩展输出图像标签。 我需要访问(在C#代码中)像Razor的@ Url.Content()帮助器来获取当前上下文的正确的URL。 如何做到这一点?

使用以下代码模仿Url.Content。

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

您可以通过传递适当的ViewContext来创build自己的UrlHelper实例。 例如,要从图像帮助程序执行此操作:

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

在这一点上,您可以调用Url.Content()或任何其他UrlHelper方法。

也许这样的事情?

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

是的你可以。

从一个控制器,你可以调用:

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

是的,使用这个代码将url.content添加到你的代码中,这是工作,兄弟和sist

[sample] var img_btn_edit = VirtualPathUtility.ToAbsolute(“〜/ Content / images / pencil.png”);

你可以到达Request对象,从而得到这样的URL:

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