당신은 Content()
메소드를 오버라이드 (override)합니다 UrlHelper
의 자신의 구현을 제공하고 자신의 WebViewPage
을 소개하는거야 필요가있어.
첫째, 생성 유형 :
public class MyUrlHelper : UrlHelper
{
public MyUrlHelper() {}
public MyUrlHelper(RequestContext requestContext) : base(requestContext) {}
public MyUrlHelper(RequestContext requestContext, RouteCollection routeCollection) : base(requestContext, routeCollection) { }
public override string Content(string contentPath)
{
// do your own custom implemetation here,
// you access original Content() method using base.Content()
}
}
public abstract class MyWebPage : WebViewPage
{
protected override void InitializePage()
{
this._urlHelper = new MyUrlHelper(this.Request.RequestContext, RouteTable.Routes);
}
private MyUrlHelper _urlHelper;
public new MyUrlHelper Url { get { return _urlHelper; } }
}
// provide generic version for strongly typed views
public abstract class MyWebPage<T> : WebViewPage<T>
{
protected override void InitializePage()
{
this._urlHelper = new MyUrlHelper(this.Request.RequestContext, RouteTable.Routes);
}
private MyUrlHelper _urlHelper;
public new MyUrlHelper Url { get { return _urlHelper; } }
}
그런 다음
~/Views/Web.Config
에서 사용자 정의
MyWebPage
등록은 :
<system.web.webPages.razor>
....
<pages pageBaseType="Your.NameSpace.MyWebPage">
....
</pages>
</system.web.webPages.razor>
고마워, 지금 해보도록. –
I 'MyWebPage.Url'를 초기화하는 것을 잊었습니다. ed 버전. – haim770
새로운 Url 속성을 도입해야합니까? 기본 WebViewPage의 Url 속성 값을 설정하는 것으로 충분하다고 생각합니다. –