program story

ASP.NET MVC의 Page.ResolveUrl에 해당하는 것은 무엇입니까?

inputbox 2020. 10. 29. 08:06
반응형

ASP.NET MVC의 Page.ResolveUrl에 해당하는 것은 무엇입니까?


Controller에서 사용할 수있는 ASP.NET MVC의 Page.ResolveUrl에 해당하는 것은 무엇입니까?


그것은이다 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 ( "~ /")

다음은 해당 응용 프로그램 루트 연산자 ( ) 를 사용하는 경로를 확인하는 전체 방법입니다.~

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 페이지는 ResolveUrl상속 되는 System.Web.UI 네임 스페이스의 인스턴스를 자동으로 생성하지 않습니다 . 어떤 이유로 든 특정 메서드를 정말로 사용하고 싶다면 컨트롤을 새로 만들고 노출하는 메서드를 사용할 수 있지만 반대하는 것이 좋습니다 .

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

즉, @Url.ContentMVC 패러다임에 가장 적합하므로 사용 하는 것이 좋습니다.


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()

Server.MapPath ()를 사용해보십시오.

참고 URL : https://stackoverflow.com/questions/2452931/what-is-the-equivalent-to-page-resolveurl-in-asp-net-mvc

반응형