acabo de leer en this blog postRazor Plantillas en ASP.NET MVC 3.ASP.NET MVC 3 Razor plantillas VS renderPartial
En pocas palabras, apenas no lo consigue!
Es decir, no veo por qué necesitamos este código (bastante) complicado para lograr lo que se puede hacer IMO más fácil (y más nítido) con @RenderPartial
?
Esto es lo que no me gusta:
- La plantilla se almacena como delegado
Func<T,HelperResult>
? - que el delegado plantilla se persistió en el ViewData controlador (por ejemplo HttpContext.Current.Items)
El único "beneficio" Leo de ese blog es que un archivo separado no es necesario para crear plantillas, lo que significa que no es necesario volver a compilar, etc.
Pero no veo eso como un argumento válido. Los archivos extra están bien siempre y cuando la organización de la solución no se vea comprometida.
Prefiero usar @RenderPartial
, ya que puedo mantener mi marcado separado de la vista maestra, y puedo representar esto tanto en línea (tiempo de renderizado) como con jQuery (por ejemplo, evento AJAX).
Tal vez me falta algo aquí, pero ¿alguien puede dar algunas razones por las que debemos elegir Razor Templating sobre RenderPartial para crear contenido reutilizable?
Hahah. Libre pensamiento es el enemigo. Gracias @marcind. :) +1 – RPM1984
Por curiosidad (solo preguntando desde que estás en el equipo de MVC), ¿tienes alguna idea de cuál fue la motivación para incluir las Plantillas Razor? Debe haber habido una necesidad/caso de negocios para ello. ¿O es simplemente para proporcionar una alternativa como dices? – RPM1984
Bueno, nosotros (el equipo MVC) no proporcionamos "Plantillas Razor". Es solo una publicación de blog escrita por Imran. No estamos diciendo que esa es la forma en que debe escribir aplicaciones. Simplemente sucede que es posible hacer eso (debido a la forma en que funciona Razor). – marcind