2010-11-15 10 views

Respuesta

30

Si está utilizando puntos de vista inflexible de tipos que se debe:

public static MvcHtmlString MyHelper<TModel>(this HtmlHelper<TModel> htmlHelper) 
{ 
    TModel model = htmlHelper.ViewData.Model; 
    return MvcHtmlString.Empty; 
} 

Si no está utilizando puntos de vista inflexible de tipos que no se debe:

public static MvcHtmlString MyHelper(this HtmlHelper htmlHelper) 
{ 
    object model = htmlHelper.ViewData.Model; 
    return MvcHtmlString.Empty; 
} 
+0

@Darin Si quisiera un Helper fuertemente tipado para un modelo específico, ¿haría algo así como 'public static MvcHtmlString FooBarFor (este HtmlHelper htmlHelper)'? – AaronLS

+0

@ AaronLS, sí, precisamente. –

-16

ayudantes HTML son una mala forma de generar HTML programáticamente Web Forms es mucho mejor con el código en un archivo de clase de página y el marcado HTML en un archivo separado. Sí. Los ayudantes de HTML ponen algún código en archivos de clase separados, pero usted está llamando al código desde su página HTML. ¿Qué le impide escribir código directamente en su página de vista? MVC es partidario de muchas malas prácticas que usted no tiene que hacer, pero por algún motivo los desarrolladores de Web Forms tienen que hacer malas prácticas porque está permitido. Si aprende bien los formularios web, desarrollará aplicaciones web mantenibles y escalables utilizando patrones modernos orientados a objetos en lugar de lógica de procedimientos como ayudantes HTML.

+0

No soy partidario de que ningún marcado esté escrito en un archivo de clase tampoco. Evito a los ayudantes tanto como sea posible. Aunque MVC ciertamente tiene sus problemas (de ahí una cierta cantidad de empuje hacia MVVM), los formularios web se rompieron intrínsecamente, estaban llenos de compromisos tan dolorosos. – AsciiSmoke

Cuestiones relacionadas