so se questo stava accadendo nel PR o beta, ma se creo un metodo di estensione su HtmlHelper
, non è riconosciuto in una pagina del rasoio alimentato:Razor HtmlHelper estensioni (o altri spazi dei nomi per le viste) non trovato
namespace SomeNamespace.Extensions {
public static class HtmlExtensions {
public static string Foo(this HtmlHelper html) {
return "Foo";
}
}
}
ho aggiunto alla sezione <Namespaces>
in Web.config
:
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<!-- snip -->
<add namespace="SomeNamespace.Extensions"/>
</namespaces>
</pages>
Ma getta un errore di compilazione quando si tenta di visualizzare la pagina:
@Html.Foo()
Se si ricrea la pagina con WebForms funziona correttamente. Qual è l'accordo?
Soluzione
Se includo @using SomeNamespace.Extensions
a mio avviso rasoio, allora funziona, ma mi piacerebbe molto piuttosto semplicemente avere in Web.config
Anche la soluzione alternativa non funziona per me. Il metodo di estensione verrà visualizzato in intelliSense, ma genera un errore di compilazione durante il runtime. – Clark
+1 per la soluzione alternativa. Lo preferisco nel mio caso. – Kent
L'uso della soluzione alternativa è ok per una singola vista. Ma per più viste la gestione del codice diventa un problema. – Rahatur