2010-11-15 11 views

risposta

30

Se si utilizza una vista fortemente tipizzati che è necessario:

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

Se non si utilizza una vista fortemente tipizzati che non si dovrebbe:

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

@Darin Se si desiderava un Helper fortemente digitato per un modello specifico, si eseguirà qualcosa come "public static MvcHtmlString FooBarFor (this HtmlHelper htmlHelper)'? – AaronLS

+0

@AaronLS, sì, con precisione. –

-16

aiutanti HTML sono un brutto modo per generare HTML a livello di codice. Web Forms è molto meglio con il codice in un file di classe di pagina e markup HTML in un file separato. Sì. Gli helper HTML inseriscono del codice in file di classe separati, ma stai chiamando codice dalla tua pagina HTML. Che cosa ti impedisce di scrivere codice direttamente nella tua pagina di visualizzazione. MVC supporta molte cattive pratiche che non è necessario eseguire, ma per qualche motivo negli sviluppatori Web Form è necessario eseguire pratiche errate perché consentito. Se impari bene i Web Form, svilupperai applicazioni web manutenibili e scalabili usando modelli moderni orientati agli oggetti invece di una logica procedurale come gli helper HTML.

+0

Non sono nemmeno un fan di qualsiasi markup scritto in un file di classe. Evito il più possibile gli aiutanti. Anche se MVC ha certamente problemi (quindi una certa spinta verso MVVM), Web Forms era intrinsecamente infranto, era pieno di tanti dolorosi compromessi. – AsciiSmoke

Problemi correlati