2016-05-13 5 views
0

Ich versuche, ein MVC-Projekt mit EmberJS zu kombinieren. Ich habe nach vorhandenen Fragen gesucht, aber ich kam nur soweit: Ich habe etwas mit ember new emberProject erstellt und einfache Vorlagen, Routen, Modelle, Fata Morgana usw. geschrieben. Dann habe ich eine MVC-Web-API erstellt und in den Controllern AppController erstellt und dies geschrieben:emberJS mit MVC

public class AppController : Controller 
    { 
     // GET: App 
     public ActionResult Index() 
     { 
      return File(Server.MapPath("~/emberProject/dist/") + "index.html", "text/html"); 
     } 
    } 

und für den Index schreibe ich den Weg:

@{ 
    Layout = null; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <link rel="stylesheet" href="/emberProject/dist/assets/vendor.css"> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
</head> 
<body> 
    <div> 
    </div> 
</body> 
</html> 

Was soll ich danach machen? Sollte ich meine .hbs und .js Dateien auf dem MVC-Projekt nicht sehen? Weil ich nicht kann. Außerdem verwende ich gerade hartcodierte Dummy-Daten. Ich muss Daten von MVC nehmen, um als ein "Modell" auf meinem Glutprojekt zu verwenden. Was soll ich machen? Danke.

Antwort

3

Es wird dringend von der Ember-Community empfohlen, Ihre Frontend-Anwendung und Ihr API-Backend getrennt zu halten. Dies ist auch eine Voraussetzung, wenn Sie ember-cli

verwenden möchten. Sie würden also nur Ihre ASP.NET MVC-Anwendung verwenden, um Ihre Daten und Ihre statischen Assets bereitzustellen. Für die Entwicklung würden Sie Ihr Projekt mit ember serve --proxy=http://your-asp.net_mvcproject/ starten, so dass alle API Anfragen an Ihr asp.net Backend weitergeleitet werden.

Dann sollten Sie eine API in Ihrem ASP.NET MVS-Projekt erstellen, um auf Ihre Daten zuzugreifen, ich empfehle, die JSONAPI zu verwenden, die die Ember-Standardimplementierung ist.

Dann können Sie Ihre Client-Anwendung nur mit ember-cli, ohne ASP.NET MVC, nur Ihre Daten von Ihrem Backend bekommen.

Die Integration wird dann nur für den Einsatz erforderlich ist, in dem Sie auf dem Server benötigen eine statischen Dateien bauen mit ember build --prod und als Rückfall immer die glut index.html Datei dienen, so kann ember booten und der Ember-Router kann entscheiden, was dann zu tun .


Der andere Weg ist Integration Ember in Ihrem asp.net MVC-Projekt. Dies ist absolut möglich, aber Sie sollten dies nur tun, wenn Sie sowohl die ember-cli Build-Pipeline als auch die asp.net-Projektstruktur sehr gut verstehen. Wenn Sie dies tun, müssten Sie viele Dinge selbst tun, die von ember-cli gehandhabt werden.

Zum Beispiel müssten Sie ES6 selbst auf ES5 übertragen, und Sie könnten keine ember-cli Addons aus der Box verwenden. Außerdem müssten Sie wahrscheinlich Ihre Vorlagen kompilieren und einen benutzerdefinierten Resolver implementieren.

+0

Danke für die Antwort. Aber, tut mir leid, ich bin nicht wirklich gut im MVC-Teil. Ich denke, dass ich keine API erstellen muss, weil die Daten bereit sind, wie sie mir sagten, Backend-Teil wurde von jemand anderem gemacht und muss ein JSON zurückgeben, aber wie soll ich diese Daten genau auf ember bekommen? Ich bekomme nicht, was ich in die Datei ".js" schreiben sollte, die ich als Modell erstellt habe und wie ich diese JSON-Daten darin nennen soll. Vielen Dank. – hbc

+0

@HandeBc Nun würden Sie einen vorhandenen Adapter wie den 'JSONAPIAdapter' oder' RESTADAPTER' modifizieren oder einen neuen schreiben und dann Ihre Ember App mit 'ember serve --proxy = http: // backend /' aufrufen. – Lux