2009-01-17 20 views

Respuesta

16

Sobre todo se reduce a los controles por defecto y la herencia.

El maestro AJAX y el maestro ASP.NET heredan de System.Web.UI.MasterPage, mientras que el maestro MVC hereda de ViewMasterPage.

Obviamente, estos le dan ligeramente diferentes controles en esto - según lo declarado por John Clayton, la ViewMasterPage expone los ayudantes/html/url Ajax y similares, que no están a disposición de los demás MasterPages.

Aparte de eso, los controles por defecto son ligeramente diferentes:

página principal
  • ASP.NET tendrá la forma predeterminada y dos controles ContentPlaceHolder (uno en la cabeza, uno en forma
  • AJAX. página maestra también añade un control ScriptManager dentro del control Forma
  • MVC maestro (dependiendo de la versión - estoy refiriendo a la Beta).. limitaré a tener dos controles ContentPlaceHolder (en cabeza y cuerpo)

Las "diferencias del ciclo de vida" provienen de la página/vista, en lugar de los controles de MasterPage/ViewMasterPage.

1

Como una conjetura rápida que tendría que decir que la respuesta sería "ciclo de vida". ASP.NET WebForms, MVC y AJAX tienen diferentes ciclos de vida que afectarían a los eventos que necesitan un control de página maestro. Una página maestra de WebForms debería responder a Load, DataBind, PreRender, Render, etc. Una Página maestra de MVC probablemente (no está seguro de esto) solo necesita la acción Render. Todos los demás eventos son superfluos y el código equivalente se encontraría en el controlador. Por último, la página maestra AJAX necesitaría manejar las solicitudes AJAX además de las normales.

Como ya he dicho, esto es un poco de una conjetura lo que se recomienda más investigación

3

El ViewMasterPage en MVC es poco más que una página principal que expone a los mismos ayudantes como el ViewPage. Esto le da acceso a AjaxHelper, HtmlHelper, TempDataDictionary, UrlHelper, ViewContext, ViewData y HtmlTextWriter.

Al igual que el ViewPage, cuando se utiliza el WebFormsViewEngine (por defecto), usted debe resistir cualquier tentación de sobrecargar la página eventos del ciclo de vida a toda costa! Todavía están allí, y seguirán ejecutándose ya que bajo el capó todavía se llama a ProcessRequest (...) en la página.

Qué página principal AJAX se refiere usted? No estoy familiarizado con cualquier incluido con el marco ...

Cuestiones relacionadas