2013-08-04 15 views
38

Queste tre diverse funzioni esistono nel motore di visualizzazione Razor e possono essere utilizzate per ottenere risultati simili. Alla fine tutti e tre hanno appena creato parti di codice HTML, ma il modo per definirli e usarli è abbastanza diverso. So che:Quando dovremmo usare Html Helpers, Razor Helpers o Partial Views?

Html Gli helper vengono creati come metodi di estensione per la classe HtmlHelper. Utilizzano frequentemente la classe TagBuilder per generare un codice HTML e devono sempre restituire uno IHtmlString.

I Razor Helpers (metodi @helper) possono essere definiti localmente (nello stesso file del rasoio) o globalmente (nella directory App_Code). Sono piccoli frammenti di codice HTML che possono essere riutilizzati esclusivamente nei file Razor.

Infine, le viste parziali sono solo normali file di visualizzazione che possono essere inclusi in altri file di visualizzazione utilizzando l'helper .

La mia domanda è:

C'è uno scenario specifico per ognuna di queste caratteristiche? Oppure si tratta di sapori diversi per ottenere lo stesso risultato?

risposta

57

Gli helper HTML sono per componenti riutilizzabili. per esempio. WebGrid, Pager, ecc. Questi sono distribuiti come assembly e non hanno alcuna dipendenza da Razor. Scegliere questa opzione se:

  • funzionalità è veramente riutilizzabile e applicabile a qualsiasi applicazione
  • Se non si desidera la gente a modificarlo, vogliono versione IT

partial Visualizzazioni sono un modo per dividi grandi viste in parti più piccole per mantenere le cose più gestibili. Sono anche utili per la riusabilità che è specifica per la tua applicazione. Questi sono posizionati dal motore di visualizzazione, in modo da poter avere lo stesso parziale definito in luoghi diversi (ad esempio Viste/Condivisi), consentendo di personalizzare per controller, area o modalità di visualizzazione. Scegliere questa opzione se:

  • La funzionalità è specifico dell'applicazione
  • desidera personalizzare per controller, area o modalità di visualizzazione

aiutanti locali sono un modo per eseguire lo stesso modello più volte, senza dover ripetere te stesso. Puoi anche usarlo per interrompere le viste in parti per evitare nidi profondi, ma mantenendo tutto nello stesso file. Scegliere questa opzione se:

  • funzionalità è specifica vista

Application Helpers (in App_Code) sono un mix tra aiutanti locali e aiutanti HTML.Scegliere questa opzione se: Razor

  • Preferisco oltre TagBuilder
  • non si mente la distribuzione di file invece di assemblee
  • Preferisco sintassi del metodo-call di tipo-safe, invece di @Html.Partial(name)
Problemi correlati