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

时间:2008-12-09 06:13:20

标签: asp.net asp.net-mvc

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

6 个答案:

答案 0 :(得分:88)

使用以下内容模仿代码中的Url.Content。

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

答案 1 :(得分:40)

您可以通过传递相应的UrlHelper来创建自己的ViewContext实例。例如,要从图像助手执行此操作:

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

此时,您可以拨打Url.Content()或任何其他UrlHelper方法。

答案 2 :(得分:2)

或许这样的事情?

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

答案 3 :(得分:2)

是的,你可以。

您可以致电控制器:

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:-1)

您可以访问Request对象,从而得到如下URL:

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