2013-01-29 9 views

risposta

6

utilizzare this. Per utilizzare la funzione "@helper" in Rasoio è necessario posizionare il file CSHTML nella cartella App_Code della propria app. Non c'è una cartella "Views/Helpers" in ASP.NET MVC 3. Il post del blog di ScottGu è stato scritto prima che la funzionalità fosse completamente implementata, e alcune delle note non sono più completamente accurate.

Per chiamare "@helper" che hai scritto devi includere sia il nome del file che il nome dell'helper al suo interno. Ad esempio, se si dispone di questo helper:

~/App_Code/MyHelper.cshtml 

E questo contenuto:

@helper ShowStuff(string stuff) { 
    <p>@stuff</p> 
} 

quindi si chiama in questo modo:

@MyHelper.ShowStuff("some stuff!") 
+0

L'Helper funziona solo con il file al App_Code cartella. –

+0

Mi sono imbattuto in un problema di distribuzione a un provider di hosting che non consentiva la cartella App_Code, quindi non sono attualmente in grado di utilizzare questi helper. http://stackoverflow.com/a/16057766/678338 –

+0

@SeanMill è possibile aggiungere questo nella parte superiore della vista "@using UtilsProject.Helpers" e utilizzare l'helper "@ Html.MyCustomHelper()". Alla mia applicazione aggiungo un nuovo progetto alla soluzione chiamato UtilsProject e al suo interno ho il mio aiuto personalizzato. –

1

Hai una buona struttura.

Vorrei cambiare la cartella Html con una cartella di utilità. Puoi aggiungere tutti gli aiutanti di questo tipo.

  • Controller
  • modelle
  • Visualizzazioni
  • Utility
  • quadro (questo può essere utile per l'avvio automatico della vostra applicazione)

E non c'è in realtà alcuna correzione "best practice" . Assicurati di poter trovare le tue lezioni nei posti più ovvi. Se non rimodellare.