2008-12-29 5 views
6

En una publicación relacionada mencioné que he encontrado ayudantes HTML personalizados para ser solo eso, útil, al desarrollar. Por ejemplo, cuando necesito buscar una "cuadrícula" tengo un ayudante personalizado al que puedo llamar al Html.Pager().¿Las clases personalizadas de ayuda HTML violan el modelo ASP.NET MVC?

Algunos han señalado que los ayudantes HTML son una violación del modelo MVC. Personalmente, no veo que sea diferente de los ayudantes existentes, como Html.Textbox() o Html.ActionLink().

Todavía estoy tratando de obtener más información acerca de MVC, por lo que todas las perspectivas son apreciadas.

+0

¿Cuál es el argumento que se está haciendo? No veo ningún problema a menos que seas realmente torpe en lo que dejas que el ayudante acceda a –

Respuesta

16

Observe que los helpers existentes están todos escritos como métodos de extensión de la clase HtmlHelper. Tomamos explícitamente ese enfoque para que otros puedan escribir sus propios métodos de ayuda como métodos de extensión de HtmlHelper.

Por lo tanto, en general, esto no es una violación del modelo MVC. Supongo que realmente depende de lo que estás haciendo en tu ayudante. Los ayudantes deberían simplemente renderizar html en función de los argumentos que se les pasen. No deberían hacer ningún acceso a los datos, etc.

Simplemente encapsulan el código para representar partes de marcado comunes. Si estás haciendo eso, entonces no estás en violación del modelo ASP.NET MVC.

+0

Entonces, ¿cuál es la mejor manera de procesar partes comunes de una aplicación con acceso a datos o cualquier otra cosa más que renderizar Html? En MVC 2 tenemos Html.RenderAction, probablemente sea la mejor manera, ya que viene del controlador, ¿pero en MVC 1? –

Cuestiones relacionadas