2016-05-13 6 views
0

私はEmberJSにMVCプロジェクトを結合しようとしています。私は存在する質問を探しましたが、私はember new emberProjectで何かを作成し、単純なテンプレート、ルート、モデル、ミラージュなどを書きました。そしてMVC Web APIを作成し、コントローラでAppControllerを作成し、emberJS with MVC

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

とインデックスのために私は、パスを記述します。

@{ 
    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> 

私はこの後に何をすべきでしょうか? .hbs.jsのファイルがMVCプロジェクトに表示されるべきではありませんか?私はできないので。また、今はハードコードされたダミーデータを使用しています。 Emberプロジェクトで「モデル」として使用するには、MVCからデータを取得する必要があります。私は何をすべきか?おかげさまで

答えて

3

フロントエンドアプリケーションとAPIのバックエンドを分離しておくことを強く推奨します。 ember-cli

したがって、データと静的資産を提供するためにasp.NET MVCアプリケーションのみを使用します。開発のためにember-cliプロジェクトをember serve --proxy=http://your-asp.net_mvcproject/で開始すると、すべてのAPIリクエストがasp.NETバックエンドにプロキシされます。

次に、asp.NET MVSプロジェクトでデータにアクセスするためのAPIを作成する必要があります。これは、デフォルトの実装であるJSONAPIを使用することをお勧めします。

ember-cliでクライアントアプリケーションを構築し、asp.NET MVCを使用せずに、バックエンドからのデータ取得のみが可能です。

スタンドアロンファイルをサーバに配置する場合は、ember build --prodでサーバを構築する必要があります。フォールバックは常にember index.htmlファイルを提供するため、emberは起動し、emberルータは何をするかを決定できます。 。


もう1つの方法は、asp.net MVCプロジェクトにemberを組み込むことです。これは絶対に可能ですが、ember-cliパイプラインとasp.NETプロジェクト構造の両方をよく理解している場合にのみ、これを行うべきです。あなたがこれを行うなら、ember-cliによって処理される多くのことを自分自身で行う必要があります。

たとえば、自分でES6をES5に移行する必要があり、ボックスの外にember-cli個のアドオンを使用することはできません。また、おそらくあなたのテンプレートをコンパイルし、カスタムリゾルバを実装する必要があります。

+0

ありがとうございました。しかし、申し訳ありませんが、私はMVCの部分にはあまりよくありません。私はAPIを作成する必要はないと思います。なぜなら、バックエンドの部分は他の人によって行われていて、JSONを返さなければならないのですが、どうすればこのデータを正確に取得できますか?私はモデルとして作成した '.js'ファイルに何を書き、JSONデータをどのように呼び出すのかを知りません。ありがとう。 – hbc

+0

@HandeBc 'JSONAPIAdapter'や' RESTADAPTER'のような既存のアダプタを変更したり、新しいアダプタを作成して、 'ember serve --proxy = http:// backend /'でemberアプリケーションを呼び出してください。 – Lux