Integrieren Winkel 5 mit ASP.NET MVC 5
Ich versuche mich zu integrieren, eine Eckige 5 app generiert ein CLI-Projekt in eine bestehende ASP.NET MVC 5-Anwendung. Ich habe die eckige Projekt mit CLI-innen der ASP.NET MVC-Projekt, und ich möchte zu verwenden, Winkel-5-Komponenten im inneren razor-Ansichten; diese wird einfach, razor Ansichten und in denen werde ich zeigen einige Winkel 5 Komponenten. Ich habe dies mit ASP.NET Core 2, ich habe die Outdir
Eigenschaft wwwroot
in der Datei .angular-cli.json
, und es funktionierte, aber ich konnte es nicht mit ASP.NET MVC 5. Kann jemand helfen? Danke
PS: vielen tutorials verwenden alte Versionen von Eckigen und Sie verwendet eine Datei namens system.js
, aber diese Datei existiert nicht mehr in den neueren Versionen von Angular.
InformationsquelleAutor Haytham | 2017-12-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hast du den gesehen, der release candidate für die neue Microsoft Core Winkel-Vorlage. Sie verändert die Vorlage so, dass es verwendet eckig-cli. Funktioniert gut. Sie könnten möglicherweise Folgen die gleichen build-config-Muster. Hinweis: Sie müssen installieren Sie die neueste version der Vorlage über
dotnet neu-installieren von Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0-rc1-Finale.
https://docs.microsoft.com/en-us/aspnet/core/spa/angular?tabs=visual-studio#tabpanel_IjUmMTId-R_visual-studio
InformationsquelleAutor Ali Goodnature-Wieckowicz
Habe ich nur dieses mit Winkel-5 und MVC-5. Ich schlage vor, Sie bekommen ein "Hello World" zunächst, und dann-port, es in Ihre bestehende MVC-problem.
Pre-reqs - stellen Sie sicher, dass Sie die neueste Node, NPM, AngularCLI installiert...
In VS2017, erstellen Sie eine Neue ASP.NET Web-Anwendung, WELLNESS-Bereich mit MVC und WebAPI 1.1. Alle Dateien anzeigen (im Projektmappen-Explorer - das macht die Sache einfacher!)
Aus der Paket-manager-Konsole deinstallieren Sie nicht benötigte Pakete:
Entfernen Sie alle bundles in
BundleConfig.cs
(wir ziehen Sie in späteren!)Ordner "Scripts" löschen (wird neu erstellt mit der AngularCLI)
Hinzufügen Eckig mit CLI (gehen Sie in die Projekt-root-Ordner)
Run:
ng new Scripts --skip-tests --style scss
In das Projekt, schließen Sie alle Ordner AUßER
node_modules
!Update
angular.json
auf die Ausgabe vonBundles
Ordner ->"outputPath": "../Bundles"
Add-bundles:
(Optional) Re-hinzufügen von Bibliotheken durch NPM (Eingabeaufforderung aus dem Ordner "Scripts"):
(Optional) Verweisen in eckigen.json so AngularCLI zieht Sie in den webpack-bundles:
Erstellen von scripts Ordner:
ng build --extractCss
In
_Layout.cshtml
hinzufügen:und
Entfernen Sie die alte bundle importiert!
In
Home/Index.cshtml
fügen Sie die Winkel-element:13.1 Entfernen Sie die alte bundle importiert!
Führen Sie das web-app - es sollte sich öffnen. Registrieren Sie einen neuen Benutzer, und dann auf login. Zeigen Sie das MVC5 demo-Seite zusammen mit der Eckigen
"Uhr" die Webseite - von der Befehlszeile aus:
Dies wird den Bundles. Leider müssen Sie den browser aktualisieren, aber das ist besser als stop/Start Dinge!
Schreien, wenn Sie mehr detail - ich hab mich über dieses doppelt vertraut mit ihm bekommen, und es funktioniert gut!
Hi Mawy, das ist ein großes Thema. Ich glaube nicht, verwenden Sie Azure, sondern auf AWS ich lieber ein "old-school" - Bereitstellung-Methode. Ich Laufe ein MSBuild-Skript zu "ng bauen-prod", welche erstellt prod bundles Eckig etc, dann eine MSBuild zu bauen, die MVC5 website-Projekt. Dann kopiere ich diese in einen freigegebenen Ordner auf dem Zielserver. Der Ziel-server ausgeführt wird, IIS7, und die Aktie ist innerhalb inetpub/wwwroot. Im IIS habe ich in der Regel erstellen Sie eine neue virtuelle Verzeichnis, und meine freigegebenen Ordner sitzt genau dort... ich hoffe, das hilft Steuern Sie? Sonst werfen die Frage auf, und ich werde versuchen, geben einen größeren Antwort...
Die folgenden Schritte erwähnt, bin ich immer die Fehlermeldung Fehler: Die Auswahl "app-root" - nicht match irgendwelche Elemente
Sie haben nicht in das html-element < - app-root></app-root> in Ihre MVC-Ansicht. Dies ist, wo Eckige injizieren Sie die HTML-Ausgabe, die Sie definieren, wie ein element-Selektor in der app.Komponente.ts... Setzen Sie ein, in die MVC-Ansicht, wo Sie das Rendern der Winkel-Skripte...
Danke, @JamesJoyce. Tolle Antwort. Benutzte es mit großem Erfolg. Eine kleine Korrektur: Schritt 5:
ng new Scripts --skip-tests --style=scss
InformationsquelleAutor James Joyce
Lösung und wie es zu tun mit Eckigen 4.3 hier:
Nur für die Bequemlichkeit: diejenigen, die wissen zu MVC überspringen können alle, die Erklärung und gehen direkt zu "Wie Eckig" youtu.werden/-2tpXcor6wU?t=4703
InformationsquelleAutor Haytham