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