事实上,它必须设置在Page_PreInit
,如果您尝试更改主题,它将不起作用Page_Init
.
最常见的解决方案是为所有页面使用父类。这是一次性的更改,并将逻辑放置在父类中。而不是继承自Page
然后你继承自,比如说,ThemedPage
。班级内部ThemedPage
,它继承自Page
当然,您可以重写 Page.OnPreInit 方法本身。
你要求“两行”,如果你消除混乱,它实际上是一条。这是VB:
Public Class ThemedPage
Inherits Page
Protected Overrides Sub OnPreInit(ByVal e As System.EventArgs)
Me.Theme = HttpContext.Current.Request.Url.Host.Replace(".com", "")
MyBase.OnPreInit(e)
End Sub
End Class
而不是这个:
Partial Class _Default
Inherits System.Web.UI.Page
你现在写这个:
Partial Class _Default
Inherits ThemedPage
就这样!一次性搜索/替换就完成了。为了完整起见,以下是 C# 的相同内容(仅是类):
// C# version
using System.Web;
using System.Web.UI;
public class ThemedPage : Page
{
protected override void OnPreInit(System.EventArgs e)
{
this.Theme = HttpContext.Current.Request.Url.Host.Replace(".com", "");
base.OnPreInit(e);
}
}
Update:添加了 VB 代码示例
Update:添加了 C# 代码示例