在ASP.NET MVC中获取静态方法中的URL

时间:2011-08-16 17:37:32

标签: asp.net-mvc asp.net-mvc-routing

我的ASP.NET MVC应用程序将一个名为“Asset”的路由添加到RouteTable,我有一个静态方法。

此静态方法需要能够生成应用程序“Asset”路径的URL。

我该怎么做?

2 个答案:

答案 0 :(得分:17)

假设您的代码在http请求的上下文中运行,您可以从静态方法执行以下操作:

new UrlHelper(HttpContext.Current.Request.RequestContext);

答案 1 :(得分:0)

助手类:

  public static class UrlHelper
  {
    private static System.Web.Mvc.UrlHelper _urlHelper;

    public static System.Web.Mvc.UrlHelper GetFromContext()
    {
      if (_urlHelper == null)
      {
        if (HttpContext.Current == null)
        {
         throw new HttpException("Current httpcontext is null!"); 
        }

        if (!(HttpContext.Current.CurrentHandler is System.Web.Mvc.MvcHandler))
        {
          throw new HttpException("Type casting is failed!"); 
        }

        _urlHelper = new System.Web.Mvc.UrlHelper(((System.Web.Mvc.MvcHandler)HttpContext.Current.CurrentHandler).RequestContext);
      }

      return _urlHelper;
    }
  }

致电:

UrlHelper.GetFromContext().Action("action", "controller");