Ok, ich bin etwas verwirrt, was mit den folgenden Daten passiert.Können MVC-Ansichten auf alle Projekte zugreifen, obwohl sie nicht vom Projekt referenziert werden, in dem sich die Ansichten befinden?
Wir haben die folgende Struktur in unserer Anwendung:
- Portal.Web - Ein MVC 3 Web App, die im Grunde alle Ansichten, Skripte enthält, CSS und HTML-Hilfsmethoden Erweiterung
- Portal.Core - Eine Klassenbibliothek, die im Grunde unsere Business Objects ist, wir haben alle unsere Modelle in diesem Projekt enthalten.
- Portal.Data - Eine weitere Klassenbibliothek, die unsere NHibernate config und unsere DTO-Klassen enthält.
Hier ist unsere Nutzung: In der Steuerung haben wir das Modell in Portal.Core sie nennen, die Portal.Data durch den Aufruf auffüllt, so dass im Grunde Web niemals Daten sehen.
Hier ist der Haken: In der Steuerung, zum Beispiel sagen, ich versuche und instanziiert einen neuen DTO-Objekt-Client wie so genannt:
var client = new Client();
Es wird nicht funktionieren, die es keine Ahnung, was Kunden erwartet wird, hat ist und sogar die Angabe einer Verwendung wird es nicht schneiden. Das ist gut.
ABER Wenn ich versuche und genau die gleiche Zeile in der Ansicht, fügt Resharper die Verwendung der Ansicht und dann keine Beschwerden, das Projekt läuft und wir können DTO-Klassen in unseren Ansichten verwenden.
Die Frage ist also, warum? Ich versuche, unsere Juniors davon abzuhalten, DTO-Klassen in Views zu verwenden. Daher habe ich den Verweis auf das Data-Projekt im Web absichtlich entfernt, aber sie können immer noch die Klassen verwenden. Kann jemand Licht abwerfen?
Ist ReSharper auch eine Referenz hinzufügen? – KingCronus
Nein, das ist nur ein Ablenkungsmanöver, wenn ich den Typ mit dem Namespace vollständig qualifiziere und ohne Hilfe von Resharper funktioniert es leider immer noch. – mattytommo
Dann verstehe ich Ihre Verwirrung! – KingCronus