2010-11-12 7 views
12

Qual è il punto diPerché WebViewPage è astratto in MVC3?

public class ThemedViewPage<T> : WebViewPage<T> 
{ 
    public override void Execute() 
    { 

    } 
} 

Cosa dovrei fare con esso? Lo chiedo perché l'ho lasciato vuoto e il mondo è un buon posto e tutto sembra funzionare - aggiorno solo una demo che sto organizzando questo pomeriggio e questa è una domanda che probabilmente mi verrà posta.

+5

La soluzione migliore qui è anche dichiarare la classe come astratta e * non * sovrascrivendo il metodo Execute(). – Eilon

+0

Buon punto, accoppiato con la risposta di sotto che ha senso –

risposta

11

Il rasoio funziona generando una classe che eredita da una classe base. La classe predefinita ereditata da è WebViewPage<T>. Quando esprimi @inherits ThemedViewPage<Something> stai dicendo al generatore di codice di creare una classe che eredita da ThemedViewPage<Something>.

In realtà non si implementa il metodo Execute, come il parser Razor che genera questo metodo. Vale la pena leggere Andrew Nurse's Blog, Ben @ BuildStarted's Blog e forse anche my own dato che abbiamo lavorato di recente alla costruzione di un motore di sincronizzazione Razor, quindi era necessario imparare come funzionava tutto internamente.

+0

Cool - questo è abbastanza buono per me, scarsa documentazione su ma volevo che questo discorso fosse aggiornato. –

+0

Ho bisogno di '@ inherits' in ogni vista. Non è * ereditato * dal _Layout? –

+1

Quattro anni di ritardo, ma no, non è ereditato dal layout. – Casey

Problemi correlati