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
也可以。现在我想知道为什么,只是使用覆盖方式对我来说似乎是个hacky。有人可以帮忙吗?
答案 0 :(得分:-1)
我建议在页面指令中使用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
。