什么与Controller中可用的ASP.NET MVC中的Page.ResolveUrl等效?
Answers:
它是Url.Content:
ASPX:
<link rel="stylesheet" href="<%= Url.Content("~/Content/style.css") %>" type="text/css" />
剃刀:
<link rel="stylesheet" href="@Url.Content("~/Content/style.css")" type="text/css" />
这应该做您想要的...
System.Web.VirtualPathUtility.ToAbsolute(“〜/”)
UrlHelper.Content
HttpServerUtility.MapPath
WebPageExecutingBase.Href
VirtualPathUtility.ToAbsolute
Control.ResolveUrl
若要在asp.net页上使用内联代码调用任何方法,则该方法需要作为当前对象上的实例变量公开,或作为静态/共享方法提供。
一个典型的MVC页面使我们可以通过 WebViewPage
。曾经想知道您何时键入@ViewData
,就可以神奇地连接到ViewData?那是因为您已经找到了您所在的MVC页面公开的属性。
因此,调用这些方法时,我们不一定要引用它们表示的类型,而是要公开它们的实例属性。
我们可以分别这样调用上述实例方法:
href="@Url.Content("~/index.html")"
href="@Server.MapPath("~/index.html")"
href="@Href("~/index.html")"
我们可以这样做来调用不需要实例的共享方法:
href="@VirtualPathUtility.ToAbsolute("~/index.html")"
AFAIK,一个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范例的方法UrlHelper.Content()
做与 Control.ResolveUrl().
有关更多参考:http : //stephenwalther.com/archive/2009/02/18/asp-net-mvc-tip-47-ndash-using-resolveurl-in-an-html.aspx
Server.MapPath() //returna full path
要么
url.content()
url.content
可以使用它!
尝试使用Server.MapPath()。