Je ne sais pas si cela se produisait dans le PR ou la Beta, mais si je crée une méthode d'extension sur HtmlHelper
il n'est pas reconnu dans une page propulsée par Razor :
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 une erreur de compilation se produit lorsque l'on essaie d'afficher la page :
@Html.Foo()
Si je recrée la page avec WebForms il fonctionne bien. Quel est le problème ?
Solution de rechange
Si j'inclus @using SomeNamespace.Extensions
dans ma vue Razor, alors cela fonctionne, mais je préférerais l'avoir simplement dans Web.config
2 votes
Même la solution de contournement ne fonctionne pas pour moi. La méthode d'extension s'affiche dans intelliSense, mais génère une erreur de compilation lors de l'exécution.
0 votes
+1 pour la solution de contournement @using. Je la préfère dans mon cas.
0 votes
La solution de contournement de @using est acceptable pour une seule vue. Mais pour des vues multiples, la gestion du code devient un problème.