2011-02-14 14 views
8

Ho visto il post di Scott Guthrie sui metodi di supporto tramite his blog.Metodi di supporto dichiarativi nel Razor RTM

In particolare questo:

vedo il gruppo di versione RC di MVC 3 post sulla mancanza di metodi di supporto ... vedo il supporto sintattico per esso (@helper) viene messo in evidenza, ma ho questo in /Views/Helpers/SomeHelper.cshtml (definita come vista parziale):

@helper SomeHelper(string text) 
{ 
    if (text != null) 
    { 
     <text> 
      @text 
     </text> 
    } 
    else 
    { 
     <text> 
      Unknown 
     </text> 
    } 
} 

lo uso in questo modo:

<div> 
Helper with Text: 
@SomeHelper("This is not null text.") 
</div> 

Ma ottengo SomeHelper non è definito .... quindi dove ho fatto un pasticcio? C'è qualcosa che devo fare per registrare queste opinioni come aiutanti?

Grazie.

risposta

12

Ho fatto questo con la creazione di una cartella App_Code nel mio progetto, quindi la creazione di un file Helpers.cshtml in quella cartella.

Poi, in un .cshtml vista, l'uso:

@Helpers.SomeHelper("This is not null text.") 

Questo è l'unico modo che ho trovato per creare metodi helper dichiarative condivisi attraverso l'intero progetto web. Se ce ne sono altri, mi piacerebbe sentirli.

+0

Corretto, questo è l'unico modo in cui questo può funzionare in MVC al momento. In futuro avremo una storia migliore per gli aiutanti globali. Non abbiamo avuto il tempo di farlo funzionare. – marcind

+0

Anche con il modello di applicazione Web? –

+0

@marcind Che ne è di ASP.NET MVC 4? Ci saranno altri modi per creare aiutanti globali? – Syska

Problemi correlati