2011-12-08 12 views
5

Page_PreRenderPage_Loadの両方が、使用しているマスターページで機能しません。しかし、何らかの理由でPage_Initが発生します。 AutoEventWireupはtrueに設定されます。ASP.NETマスターページのプレレンダリングが実行されません。

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プロジェクトでも試してみました。それは正常に動作します。

編集:

<%@ Master Language="C#" MasterPageFile="~/MainMaster.master" AutoEventWireup="true" 
    CodeBehind="MyMaster.master.cs" Inherits="MyMaster" EnableViewState="false" %> 

しかし、私は、ViewStateが有効にされたくない:私はEnableViewStatetrueに修正、それを設定することを考え出しました。 EnableViewStateの値に関係なく、OnPreRenderを無効にすることもできます。今、なぜ私は不思議に思っています。オーバーライド方法を使用するだけで私にとってはハッキリのようです。誰でも助けることができますか?

+0

なぜ、プールmyMaster内のすべてのメソッドが呼び出されると思いますか? –

+0

申し訳ありませんが、これはコンストラクタです。いくつかのウィンドウからポストにコードをコピーしている間に、コピー+ペーストが失敗します。 –

+1

マスターページを参照するページを呼び出しますか? – slfan

答えて

-1

私は、pageディレクティブでAutoEventWireupを使用することをお勧め、あなたが以下のようにしてみてくださいになります、あなたのpageディレクティブ<%@ 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ファイルをチェックインし、AutoEventWireupFalseに設定されていないことを確認してください。

+0

あなたのおかげでエリアス。残念ながら、まだです。私は自分のコードを二重チェックして、あなたが示唆したようなものです。 –

+0

これはまったくナンセンスです@ムード、あなたが最初に試してください、私に知らせてください、あなたの時間のために感謝する必要があります。 –

+0

お互いのことを誤解している必要があります。私は本当にあなたが書いたことを試しましたが、うまくいきません。また、あなたが怒ったと感じた場合に備えて、私はあなたの答えを投票しませんでした。 –