Rasoir HtmlHelper Extensions (ou d'autres espaces de noms pour les vues) Pas Trouvé

Ne sais pas si cela se passait dans la PR ou Bêta, mais si je crée une méthode d'extension sur HtmlHelper, il n'est pas reconnu dans un Rasoir alimenté page:

namespace SomeNamespace.Extensions {
    public static class HtmlExtensions {
        public static string Foo(this HtmlHelper html) {
            return "Foo";
        }
    }
}

Je l'ai ajouté à la <Namespaces> section dans Web.config:

<pages>
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <!-- snip -->
    <add namespace="SomeNamespace.Extensions"/>
  </namespaces>
</pages>

Mais il génère une erreur de compilation lorsque vous essayez d'afficher la page:

@Html.Foo()

Si je recréer la page avec WebForms il fonctionne très bien. Quel est le problème?

Solution de contournement

Si je comprend @using SomeNamespace.Extensions dans mon Rasoir vue, il fonctionne, mais je préfère l'avoir juste en Web.config

  • Même la solution de contournement ne fonctionne pas pour moi. La méthode d'extension apparaîtra dans intelliSense, mais jette une erreur de compilation lors de l'exécution.
  • +1 pour le @à l'aide de solution de contournement. Je la préfère dans mon cas.
  • solution de contournement est ok pour une vue unique. Mais pour de multiples points de vue, le code de gestion devient un problème.
InformationsquelleAutor swilliams | 2010-11-09