Page_PreRenderPage_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

10-04 14:41