So laden Sie Vorlagen aus Views-Ordner mit AngularJS und asp.net MVC 4

7

Anscheinend bin ich sehr neu bei angularJS und asp.net MVC4. Hier ist das Szenario:

Ich habe ein einfaches MVC4-Projekt, das einen Controller und eine Ansicht enthält (z. B. home.cshtml). Jetzt habe ich eine HTML-Datei (d. H. Search.html) in einen Ordner namens "Templates" eingefügt, der sich im Hauptverzeichnis des Projekts (außerhalb des Views-Ordners) befindet. Was ich will, ist "search.html" mit angularJS zu laden, so dass ich es in die "home.cshtml" aufnehmen kann, wie kann ich das tun? Hier ist, was ich bis jetzt habe:

angular Modul: (Befindet sich im Scripts-Ordner)

%Vor%

hoffe das klar für dich. jede Hilfe würde geschätzt werden! Danke ..

    
SolidSnake 22.06.2013, 23:36
quelle

2 Antworten

25

Es hat eine Weile gedauert, bis ich herausgefunden habe, wie angularjs mit asp.net mvc arbeiten kann - das ist nicht 100% so wie du es gemacht hast, aber vielleicht solltest du dir diesen Ansatz noch einmal überlegen (es ist nicht viel anders trotzdem)

%Vor%

Ok, beachten Sie, dass ich Templates / Account / List aufruft.

In meiner RouteConfig.cs

%Vor%

Jetzt habe ich in jedem Controller diese entsprechende Aktion, die den Aufruf an die entsprechende Teilansicht weiterleitet:

%Vor%

Alles beginnt mit der Aktion "Index ()" im Controller.

%Vor%

Wenn ich alles zusammenfasse, sieht meine Verzeichnisstruktur so aus.

%Vor%

Ich bin voreingenommen, da dies mein Ansatz ist, aber ich denke, es macht die Dinge super einfach und gut organisiert. Index.cshtml enthält die ng-view und alle anderen Teile der Anwendung sind in Teilansichten enthalten, die über diese Vorlagenaktion geladen werden. Hoffe, das hilft.

    
apexdodge 23.06.2013 00:32
quelle
4

Ich stehe vor dem gleichen Problem, und ich habe die Lösung.

Klingt so, als ob Sie "Home.cshtml" als Basis verwenden und in der "search.html" vom AngularJS-Routing laden möchten, oder? (So ​​wie die MVC-Methode ein wenig sein kann: Die '_Layout.cshtml' ist die Basis, lass uns in verschiedenen Ansichten laden wir navigieren.)

Um das zu erreichen, fügen Sie einfach das ng-view-Tag in Home.cshtml ein! Das AngularJS-Routing wird für Sie funktionieren.

VERGEWISSERN SIE SICH, dass die geladenen Ansichten nicht in den Ordner "Ansichten" gelangen! (Oder Sie müssen auf die Ansichten zugreifen, indem Sie Anforderungen an die Controller senden, um sie zu erhalten.)

Hier ist das Beispiel.

Wir haben einen Server-seitigen (ASP.NET MVC) Controller:

HomeController mit drei Aktionen.

%Vor%

Und in Ihrem eckigen Code (app.js) legen Sie einfach die URL der ng-view für diese Aktion fest, um die Ansichten zu erhalten.

%Vor%     
葛厚德 31.07.2015 08:46
quelle