Что такое эквивалент страницы.ResolveUrl в ASP.NET MVC?



что эквивалентно странице.ResolveUrl в ASP.NET MVC доступен в контроллере?

507   7  

7 ответов:

Это Url.Содержание:

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("~/")

здесь целая куча способов решить путь, который использует приложения корень оператор (~)

для вызова любого метода со встроенным кодом на 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 не создает автоматически экземпляр чего-либо из системы.Сеть.Пространство имен 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

вам больше не нужно делать это в Razor v2.0/ASP.NET MVC 4.

просто используйте " ~ " на странице бритвы, и он разрешит его для вас.

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

источник

Server.MapPath() //returna full path

или

url.content()

попробуйте использовать сервер.MapPath().

Comments

    Ничего не найдено.