2010-01-28 6 views
8

I documenti per @MasterType hanno questo esempio.Perché la direttiva @MasterType non è implicita quando si imposta @Page masterPageFIle?

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

Perché è necessario anche @MasterType? Non è possibile che il compilatore esegua automaticamente le stesse azioni basate esclusivamente su @Page masterPageFile? Quando non vorresti usare entrambi?

+0

+1 Mi sono chiesto così tante volte! – MPritchard

risposta

2

È possibile impostare diverse pagine master su ciascuna pagina PreInit. Quindi la pagina principale è in generale non ben definita.

+1

In questo caso, mi aspetto che non si utilizzi nessuna direttiva perché è definita in fase di esecuzione e non ci si aspetterebbe di ottenere una proprietà 'Master' digitata. La domanda è davvero diretta verso situazioni in cui si usano le direttive e la pagina master è nota al momento della compilazione. –

+0

Ma c'è solo una situazione. Pagina e pagina principale sono liberamente accoppiati. È possibile modificare la pagina master in fase di esecuzione. La direttiva MasterPage è semplicemente un cast intelligente per situazioni semplici e devi assumerne la piena responsabilità. –