带有 MVC 的 emberJS

emberJS with MVC

我正在尝试将 MVC 项目合并到 EmberJS。我搜索了现有的问题,但我只得到了这些:我用 ember new emberProject 创建了一些东西并编写了简单的模板、路由、模型、海市蜃楼等。然后我创建了一个 MVC web API 并在控制器中,我创建了 AppController 并写了这个:

 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>

这之后我应该做什么?我不应该在 MVC 项目上看到我的 .hbs.js 文件吗?因为我做不到。另外,现在我正在使用硬编码的虚拟数据。我需要从 MVC 获取数据,以便在我的 ember 项目中用作 "model"。我应该怎么办? 谢谢。

ember 社区强烈建议将前端应用程序和 API 后端分开。如果您想使用 ember-cli

,这也是一个要求

因此,您只会使用 asp.NET MVC 应用程序来提供数据和静态资产。对于开发,您将使用 ember serve --proxy=http://your-asp.net_mvcproject/ 启动您的 ember-cli 项目,以便所有 API 请求都代理到您的 asp.NET 后端。

那么你应该在你的 asp.NET MVS 项目中创建一个 API 来访问你的数据,我建议使用 JSONAPI,这是 ember 默认实现.

然后您可以仅使用 ember-cli 构建您的客户端应用程序,而无需 asp.NET MVC,仅从您的后端获取数据。

然后仅在部署时需要集成,您需要为使用 ember build --prod 构建的静态文件提供服务,作为后备,您始终提供 ember index.html 文件,因此 ember 可以启动,然后 ember 路由器可以决定接下来要做什么。


另一种方法是将 ember 集成到您的 asp.net MVC 项目中。这是绝对可能的,但只有当您非常了解 ember-cli 构建管道和 asp.NET 项目结构时,才应该这样做。如果你这样做,你将不得不自己做很多由 ember-cli.

处理的事情

例如,您需要自己将 ES6 转换为 ES5,并且您不能使用开箱即用的任何 ember-cli 插件。此外,您可能需要编译模板,并实施自定义解析器。