6

两者Page_PreRenderPage_Load不能在我正在使用的母版页中工作。Page_Init但是,出于任何原因。AutoEventWireup设置为真。

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。现在我想知道为什么,只是使用覆盖方式对我来说似乎很笨拙。有人可以帮忙吗?

4

1 回答 1

-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.

于 2011-12-08T12:59:12.870 回答