Page_PreRender
和Page_Load
在我正在使用的母版页中均不起作用。但是,Page_Init
出于任何原因。 AutoEventWireup
设置为true。
public partial class MyMaster : MasterPage
{
public MyMaster()
{
// tried this too, but doesn't matter whether this LoC
// is there or not
this.PreRender += Page_PreRender;
}
protected void Page_PreRender(object sender, EventArgs e)
{
// does not fire
}
}
我也在一个空的Web项目中进行了尝试。在那里工作正常。
编辑:我发现将
EnableViewState
设置为true
可以解决此问题:<%@ Master Language="C#" MasterPageFile="~/MainMaster.master" AutoEventWireup="true"
CodeBehind="MyMaster.master.cs" Inherits="MyMaster" EnableViewState="false" %>
但是我不希望启用ViewState。无论
OnPreRender
具有什么值,覆盖EnableViewState
都可以正常工作。现在,我想知道为什么,仅使用覆盖方式对我来说似乎是一个错误。有人可以帮忙吗? 最佳答案
我建议在page指令中使用AutoEventWireup
,因此请尝试以下操作:
在页面指令<%@ Page ...
中,使用AutoEventWireup="true"
;在您的母版页中,删除PreRender
事件订阅:
public MyMaster()
{
// tried this too, but doesn't matter whether this LoC
// is there or not
//this.PreRender += Page_PreRender;
}
希望现在一切都好,谢谢您的时间。
编辑:请检入
web.config
文件,并确保AutoEventWireup
未设置为False
。