2010-11-29 13 views
11

Ho scritto un metodo semplice estensione per UrlHelper:Come si definiscono gli usi in MVC 3 Razor View Engine su tutto il sito?

public static class ExtensionMethods 
{ 
    private const string ImagesFolder = "~/Images"; 

    public static string Images(this UrlHelper url) 
    { 
     return url.Content(ImagesFolder); 
    } 
} 

Il codice di cui sopra risiede in /Helper/ExtensionMethods.cs. Funziona bene ma ho bisogno di aggiungere using MyNamespace.Helper; in ogni cshtml dove voglio usare il Url.Images(). I vecchi tempi avremmo aggiungere un'altra linea al web.config:

<system.web> 
    <pages> 
     <namespaces> 
      <add namespace="MyNamespace.Helper"/> 
     </namespaces> 
    </pages> 
</system.web> 

ma quanto sopra non sembra essere raccolti da Razor. Ho provato ad aggiungere la mia istruzione using a _ViewStart.cshtml, con lo stesso risultato.

Quindi, qual è il modo di Razor di specificare un utilizzo attraverso l'intero sito?

+1

Sicuramente una vittima - semplicemente non è venuto attraverso esso nelle mie ricerche. Grazie per aver guardato :-) – Dav

risposta

8

Come la risposta collegata suggerita suggerisce è possibile aggiungere "utilizzo" a tutte le viste aggiungendo alla sezione del file di configurazione.

Per una vista particolare si può semplicemente utilizzare

@using MyNamespace.Helper

Problemi correlati