代码之家  ›  专栏  ›  技术社区  ›  Mark Redman

在ASP.NET MVC中,与page.resolveurl等效的是什么?

  •  70
  • Mark Redman  · 技术社区  · 16 年前

    控制器中可用的与ASP.NET MVC中的page.resolveurl等效的是什么?

    7 回复  |  直到 9 年前
        1
  •  105
  •   Atanas Korchev    11 年前

    它是 Url.Content :

    ASPX:

    <link rel="stylesheet" href="<%= Url.Content("~/Content/style.css") %>" type="text/css" />
    

    Razor:

    <link rel="stylesheet" href="@Url.Content("~/Content/style.css")" type="text/css" />
    
        2
  •  39
  •   teedyay    15 年前

    这应该是你想要的…

    System.Web.VirtualPathUtility.ToAbsolute("~/")
    
        3
  •  6
  •   KyleMit Steven Vachon    11 年前

    下面是一系列解决使用该方法的路径的方法 application root operator ( ~ )

    若要在ASP.NET页上调用具有内联代码的任何方法,该方法要么需要作为当前对象上的实例变量公开,要么作为静态/共享方法提供。

    典型的MVC页面允许我们通过 WebViewPage . 有没有想过你什么时候打字 @ViewData 你会神奇地连接到视图数据?那是因为你点击了你所在的MVC页面所暴露的属性。

    因此,要调用这些方法,我们不一定要引用它们所表示的类型,而是引用公开它们的实例属性。

    我们可以这样分别调用上面的实例方法:

    href="@Url.Content("~/index.html")" 
    href="@Server.MapPath("~/index.html")" 
    href="@Href("~/index.html")" 
    

    我们可以这样做来调用不需要实例的共享方法:

    href="@VirtualPathUtility.ToAbsolute("~/index.html")"
    

    mvc页面不会自动从system.web.ui名称空间创建任何内容的实例,从该名称空间 ResolveUrl 继承。如果出于某种原因,您真的想使用那个特定的方法,那么您可以新建一个控件并使用它公开的方法,但是我会 强烈反对 .

    @Code
        Dim newControl As New System.Web.UI.Control
        Dim resolvedUrl = newControl.ResolveUrl("~/index.html")
    End Code
    href="@resolvedUrl" 
    

    都说了,我建议使用 @Url.Content 因为它最适合MVC模式

        4
  •  3
  •   Walter    13 年前

    UrlHelper.Content() 做同样的事 Control.ResolveUrl().

    更多参考资料: http://stephenwalther.com/archive/2009/02/18/asp-net-mvc-tip-47-ndash-using-resolveurl-in-an-html.aspx

        5
  •  0
  •   Carter Medlin    9 年前

    在RazorV2.0/ASP.NET MVC 4中,您不再需要这样做。

    只需使用剃刀页面中的“~”即可解决问题。

    <link rel="stylesheet" href="~/Content/style.css" type="text/css" />
    

    Source

        6
  •  -4
  •   Paul Creasey    16 年前
    Server.MapPath() //returna full path
    

    url.content()
    
        7
  •  -6
  •   Ashish Gupta Shiva    16 年前

    尝试使用server.mappath()。