2011-06-08 23 views

Respuesta

8

Pregunta subjetiva, así que aquí está mi respuesta subjetiva y sesgada: Cuando el código auxiliar implica cantidades de código C#, use un HtmlHelper personalizado y cuando sea un marcado primario, puede usar @helper. Pero suponiendo que cuando tiene marcado puede utilizar un parcial como @Html.Partial("_foo", SomeModel) o plantillas de editor/pantalla como @Html.EditorFor(x => x.Foo), el @helper realmente no tiene ningún uso práctico. Personalmente, nunca he usado @helper por cierto, y nunca he recomendado su uso a personas a las que he estado consultando.

+0

Este ha sido mi pensamiento, especialmente cuando el ejemplo de él http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax -within-razor.aspx para DisplayPrice, creo que este es el tipo de código para el que es más adecuado. Código casi completamente sin lógica que solo afecta la presentación. Del mismo modo sería hacer que sus vistas se SECO. –

+0

Si el motor de vista cambia no es necesario que reescribamos los métodos de ayuda en .cs pero de manera declarativa (.cshtml) tenemos que hacerlo. –

7

Sí, es cierto, aunque los @helpers parecen un poco más fáciles de usar si hay un buen fragmento de marcado incluido: las extensiones de HTML y el marcado más extenso no van tan bien juntas, IMO.

Por otro lado, @helpers no se puede probar en unidades como extensiones Html.

+0

+1 Muy buen punto acerca de las pruebas unitarias. –

Cuestiones relacionadas