Kann nicht Htmlhelper Methoden in VB MVC-app erstellen
-
06-07-2019 - |
Frage
ich kann nicht herausfinden, was ich in dem folgenden Code bin fehle. Ich habe eine Methode bekam, die eine (Dummy) Helfer Erweiterung hinzufügen sollte:
Imports System.Runtime.CompilerServices
Namespace HtmlHelpers
Public Module HelpExtensions
<Extension()> _
Public Function HelpMe(ByVal HtmlHelper As HtmlHelper) As String
Return "<a>HELP</a>"
End Function
End Module
End Namespace
Meine Ansicht sieht wie folgt aus:
<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Import Namespace="HtmlHelpers" %>
<asp:Content ID="indexContent" ContentPlaceHolderID="body" runat="server">
<%=Html.HelpMe()%>
</asp:Content>
Aber das gibt mir die folgende Fehlermeldung:
'HelpMe' is not a member of 'System.Web.Mvc.HtmlHelper'.
Was mache ich falsch?
Lösung
Nicht sicher, warum die Import-Namespace-Richtlinie des Trick nicht tat, aber ich hinzugefügt
<add namespace="MyProject.HtmlHelpers"/>
zum <namespaces>
Abschnitt von web.config und es funktioniert jetzt. Vielleicht, wenn ich getan hatte,
<%@ Import Namespace="MyProject.HtmlHelpers" %>
es so gut funktioniert hätte?
Andere Tipps
Haben Sie versucht, Ihre Lösung Wiederaufbau, bevor die Erweiterungsmethode zu benutzen? Ich habe für den Compiler, um das mit VB.NET zu tun, um die Existenz meiner Erweiterungsmethoden aufzunehmen.
Ich glaube, ich nur die Lösung gefunden.
Module Ihre Helfer NEED in dem App_Code Verzeichnis.
Wie gfrizzle sagte, auf die web.config die Namespace Referenz-Zugabe in dem Ordner Sichten ermöglicht die Seite korrekt angezeigt werden. Allerdings hatte ich den Client neu starten, die Intellisense zu arbeiten richtig zu erhalten. Ich hatte auch explizit auf Import
Anweisungen für Namespaces hinzufügen, die mit dem Erweiterungsmodul auf die Datei bereits global importiert wurden.
Wenn zum Beispiel System.Web.Mvc.HtmlHelper
Verlängerung habe ich die Zeile hinzufügen
Imports System.Web.Mvc
, um die Seite ohne Fehler angezeigt werden, trotz der Tatsache, dass die Anwendung kompiliert korrekt und der Namespace ist auf der Projektreferenzen Registerkarte geprüft.
Das Problem könnte sein, dass Sie beide MVC2 und MVC3 installiert haben. Wenn ja, wenn Sie schreiben eine Htmlhelper Custom mit VB.NET Visual Studio throw Anzeige Error „Yourclass“ ist kein Mitglied von ‚System.Web.Mvc.HtmlHelper‘.
Aber wenn Sie die Seite laufen funktioniert es gut.
Das ist die Lösung: http://forums.asp.net/t/1694828.aspx/1
Lösung 1) Upgrade-Projekt MVC3 Lösung 2) Deinstallieren MVC3 Lösung 3) Veränderung .NET Framework 3.5 statt 4.0 (disable MVC3) Lösung Schreiben 4) Code in C # und Sie werden keine Probleme haben,
Marco