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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top