Ich baue eine ASP.Net MVC-Website. Anstatt alles in einem Projekt zu haben, habe ich beschlossen, das Web, das Modell und den Controller in verschiedene Projekte in der gleichen Lösung aufzuteilen, die sich gegenseitig referenzieren.Warum funktionieren meine HtmlHelper-Erweiterungen nicht?
Die Referenzierung geht so:
Web --- [Referenzen] ---> Controller --- [Referenzen] ---> Modell
Jetzt wollte ich hinzufügen 2 benutzerdefinierte Methoden für die HtmlHelper-Klasse - sie heißen "IncludeScript" und "IncludeStyle". Sie nehmen jeweils einen einzelnen String-Parameter und erzeugen jeweils ein Skript oder Link-Tag.
Ich habe eine Extender-Klasse erstellt, gemäß der Dokumentation im Web, und schrieb die beiden Methoden und kompilierte die Anwendung.
Nun, wenn ich in die Public.Master Seite gehen (was mein Haupt Master-Seite ist, und einer der Orte, an denen ich diese Methoden verwenden will), I-Code wie unten eingeben:
<%= Html.IncludeScript("\js\jquery.js") %>
Die IntelliSense nimmt und IncludeScript-Methode und zeigt mir die Syntax gut. Ich würde also erwarten, dass alles funktioniert.
Aber es tut es nicht.
Alles kompiliert, aber sobald ich die Anwendung ausführen, bekomme ich die folgenden Laufzeitfehler aus der Leitung 14 von Default.aspx.cs:
c:\\Projects\\PhoneReel\\PhoneReel.Web\\Views\\Shared\\Public.Master(11): error CS0117: 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'IncludeScript'
Hier ist die Codezeile, die das Fehler treten auf:
httpHandler.ProcessRequest(HttpContext.Current);
Irgendwelche Ideen, was könnte falsch hier gehen?
Könnten Sie den Include-Skriptcode einfügen und auch das Projekt, in dem es vorhanden ist? – Ramesh