2008-11-09 63 views
2

当我创建一个aspx页面,标题包含像这样: -需要ASP.NET MVC AutoEventWireup?

<%@ Page 
    Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    AutoEventWireup="true" 
    CodeBehind="Create.aspx.cs" 
    Inherits="My.Mvc.Views.Blah" %> 

在ASP.NET MVC应用程序,我们:

  • 需要包括该AutoEventWireup属性?
  • 如果我们将此设置为false会发生什么?
  • 这个属性真的做了什么?它对ASP.NET MVC有效吗?

感谢堆人!

回答

2

对不起 - 在ASP.NET中默认为true,所以您应该在@ Page指令中明确地将AutoEventWireup设置为false,或者在web.config的MVC的页面部分中将其删除并将其设置为false。

3

您可以摆脱此属性,或将其设置为false(这是默认设置)。

AutoEventWireup意味着ASP.NET将在运行时使用反射以Page_EventName的形式(如Page_Load,Page_Init等)查找Web窗体类上的方法,并自动将这些方法连接到相应的页面生命周期事件。我在这里有更多的细节:http://odetocode.com/Blogs/scott/archive/2006/02/16/2914.aspx

在MVC中,您应该一般情况下避免为页面生命周期和代码隐藏建立事件处理程序。

+0

只是稍作澄清:事件接线不是在运行时使用反射执行的,而是在编译ASPX时连线 – 2008-11-09 16:45:42

+1

AutoEVentWireup是事件的运行时布线。代码从TemplateControl类的HookUpAutomaticHandlers开始,并且运行时行为已有详细记录(http://msdn.microsoft.com/zh-cn/library/system.web.configuration.pagessection.autoeventwireup.aspx)。 – OdeToCode 2008-11-09 20:03:43