Implementieren Sie eine benutzerdefinierte MVC-Basisansichtsseite

9

Ich versuche, eine benutzerdefinierte MVC-Basisansichtsseite zu implementieren, um den Eigenschaftentyp User zu überschreiben. Dadurch wird mein CustomPrincipal -Typ in jeder Ansicht zugänglich.

Nach der Suche im Internet fand ich Phil Haack's Anweisungen zum Implementieren einer benutzerdefinierten Basisansichtsseite . Ich folgte den Anweisungen genau so, wie sie geschrieben wurden, aber ich stieß auf ein Problem beim Zugriff auf die Eigenschaften in der Ansicht.

Wenn ich eine Ansicht öffne, werden alle vorherigen HTML-Hilfsaktionen mit der blauen, schlangenartigen Linie unterstrichen. Wenn ich den Cursor über den @Html -Bereich setze, wird der Fehler angezeigt:

"Html ist mehrdeutig und wurde aus den Namespaces oder Typen von System.Web.WebPages, System.Web.Mvc" importiert. "

Jetzt verstehe ich, warum ich die Nachricht erhalte, aber ich verstehe nicht, wie ich das beheben soll. Ich weiß nicht, warum das wichtig wäre, aber die aktuelle Anwendung wurde in Visual Basic erstellt. Als zweiten Test habe ich eine andere MVC-Anwendung in C # erstellt und versucht, die benutzerdefinierte Basisansichtsseite zu implementieren. In der C # -Anwendung hat es gut funktioniert. Ich kann auf meine benutzerdefinierte Eigenschaft in den Ansichten zugreifen.

Ich habe im Internet nach einer Antwort auf dieses Problem gesucht, aber bisher noch nichts gefunden. Ist jemand anderes auf ein ähnliches Problem gestoßen?

Als Referenz habe ich meine benutzerdefinierte Basisansichtsseite und ~/Views/web.config unten eingefügt:

BaseViewPage

%Vor%

~ / Ansichten / web.config

%Vor%     
hitopp 19.06.2013, 15:41
quelle

1 Antwort

3

Sie müssen 2 Versionen der WebViewPage bereitstellen, eine generische und nicht generische.

%Vor%     
shekky 18.06.2014 13:14
quelle