4

Visual Studio 2012ProfessionalEditionを使用しています。ページディレクティブのAutoEventWireupプロパティに「true」と「false」を設定しても違いはありません。常に「true」として動作している、意味-「false」を設定し、イベントを明示的にバインドしていませんが、イベントは暗黙的にバインドされます。足りないものがあれば教えてください。

4

2 に答える 2

9

この設定は、イベントの発生に関するものではなく、ハンドラーを標準のページ イベントにバインドするためのものです。Loadイベントの処理を示すこれら 2 つのスニペットを比較してください。

まず、次の場合AutoEventWireup="true":

public class PageWithAutoEventWireup
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("Page_Load is called");
    }
}

第二に、AutoEventWireup="false":

public class PageWithoutAutoEventWireup
{
    override void OnInit(EventArgs e)
    {
        this.Load += Page_Load;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("Page_Load is called");
    }
}

Loadどちらの場合も、イベントはページによって発生し、コードによって処理されます。ただし、2 番目のケースではイベントに明示的にサインアップする必要がありますが、最初のケースでは ASP.NET がすべてを行います。

もちろん、 、 などの他のページ ライフサイクル イベントについても同じことが言えInitますPreRender

于 2013-02-23T07:11:03.570 に答える