2010-11-12 13 views
12

¿Cuál es el punto de¿Por qué WebViewPage en MVC3 es abstracto?

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

    } 
} 

¿Qué se supone que debo hacer con él? Lo pregunto porque lo dejé vacío y el mundo es un buen lugar y parece que todo funciona, solo estoy actualizando una demostración. Me estoy presentando esta tarde y esta es una pregunta que probablemente me hagan.

+5

La mejor solución aquí es declarar su clase como abstracta y * no * sobrescribir el método Execute(). – Eilon

+0

Buen punto, junto con la respuesta a continuación que tiene sentido –

Respuesta

11

Razor funciona generando una clase que hereda de una clase base. La clase predeterminada de la que hereda es WebViewPage<T>. Cuando expresa @inherits ThemedViewPage<Something> le está diciendo al generador de códigos que cree una clase que luego hereda de ThemedViewPage<Something>.

En realidad, no implementa el método Execute, como el analizador Razor que genera este método. Vale la pena leer Andrew Nurse's Blog, Ben @ BuildStarted's Blog y tal vez incluso my own ya que hemos estado trabajando recientemente en la construcción de un Razor Templating Engine independiente, por lo que era necesario aprender cómo funcionaba internamente.

+0

Genial - eso es suficiente para mí, poca documentación sobre pero quería que esta charla estuviera actualizada. –

+0

¿Necesito '@ inherits' en cada vista. ¿No es * heredado * del _Layout? –

+1

Cuatro años tarde, pero no, no se hereda del diseño. – Casey

Cuestiones relacionadas