2008-11-09 6 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, поэтому вы должны явно указать AutoEventWireup на false в директиве @ Page или удалить его и установить в false в разделе страниц web.config для MVC.

3

Вы можете избавиться от этого атрибута или установить его в значение false (которое является значением по умолчанию).

AutoEventWireup означает, что ASP.NET будет использовать отражение во время выполнения, чтобы искать методы в вашем классе веб-формы в виде Page_EventName (например, Page_Load, Page_Init и т. Д.) И автоматически подключать методы к соответствующим событиям жизненного цикла страницы. У меня есть более подробная информация: http://odetocode.com/Blogs/scott/archive/2006/02/16/2914.aspx

В MVC вы должны, как правило, избегать проводки обработчиков событий для жизненного цикла страницы и кода в целом.

+0

Просто незначительное разъяснение: проводка события не выполняется во время выполнения с использованием отражения, она подключается при компоновке ASPX. – 2008-11-09 16:45:42

+1

AutoEVentWireup - это проводка событий. Код начинается с HookUpAutomaticHandlers класса TemplateControl, и поведение во время выполнения хорошо документировано (http://msdn.microsoft.com/en-us/library/system.web.configuration.pagessection.autoeventwireup.aspx). – OdeToCode 2008-11-09 20:03:43

Смежные вопросы