【问题标题】:emberJS with MVCemberJS 与 MVC
【发布时间】:2016-05-13 10:09:19
【问题描述】:

我正在尝试将 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 项目中用作“模型”。我应该怎么办? 谢谢。

【问题讨论】:

    标签: asp.net-mvc ember.js asp.net-web-api ember-cli


    【解决方案1】:

    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 插件。此外,您可能需要编译模板,并实现自定义解析器。

    【讨论】:

    • 感谢您的回复。但是,对不起,我不太擅长 MVC 部分。我想我不需要创建 API,因为他们告诉我的数据已经准备好,后端部分已经由其他人完成并且必须返回 JSON,但是我将如何在 ember 上准确获取这些数据?我不知道应该向作为模型创建的.js 文件写入什么内容,以及如何在其中调用此 JSON 数据。谢谢。
    • @HandeBc 好吧,您可以修改现有的适配器,例如 JSONAPIAdapter 或 RESTADAPTER,或者编写一个新适配器,然后使用 ember serve --proxy=http://backend/ 调用您的 ember 应用程序。
    猜你喜欢
    • 2013-05-31
    • 2015-10-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多