2010-01-28 4 views
8

Los documentos para @MasterType tienen este ejemplo.¿Por qué la directiva @MasterType no está implícita al establecer @Page masterPageFIle?

<%@ Page masterPageFile="~/MasterPage.master"%> 
<%@ MasterType virtualPath="~/MasterPage.master"%> 

¿Por qué es necesario @MasterType incluso? ¿No podría el compilador tomar automáticamente las mismas acciones basadas únicamente en @Page masterPageFile? ¿Cuándo no quieres usar ambos?

+0

+1 ¡Me lo he preguntado tantas veces! – MPritchard

Respuesta

2

Puede establecer diferentes páginas maestras en cada página PreInit. Por lo tanto, la página maestra en general no está bien definida.

+1

En este caso, espero que no use ninguna de las dos directivas porque está definida en tiempo de ejecución y tampoco espera obtener una propiedad 'Maestra'. La pregunta está realmente dirigida a situaciones en las que se usan las directivas y se conoce la página maestra en tiempo de compilación. –

+0

Pero solo hay una situación. La página y la página maestra están ligeramente acopladas. Puede cambiar la página maestra en tiempo de ejecución. La directiva MasterPage es simplemente un elenco inteligente para situaciones simples y usted tiene que asumir la responsabilidad total por ello. –

Cuestiones relacionadas