6

我将 .NET MVC 用于所有服务器端逻辑并提供初始页面,但我的应用程序在客户端非常繁重,因此我采用了 Backbone.JS,它被证明非常有用。

不过,我不确定如何构建我的系统以结合这两种技术。我看到它的方式我有两个选择

  1. 在服务器端从 MVC 中删除“V”,在页面加载时将 JSON 数据返回给客户端,并使用主干客户端模板从基本 JSON/主干模型构建 GUI。

  2. 从完全呈现在 .NET MVC 中的服务器返回初始页面。还返回用于渲染它们的数据并调用 collection.reset({silent: true})方法将返回的数据链接到视图。我是否认为这将允许我随后更改使用视图上的添加/删除/更改处理程序?

1 困扰我,因为我害怕放弃服务器端 MVC 的任何部分,这是我的核心技能所在。

2 我担心我可能会通过在客户端服务器上使用两种不同的渲染方法来引入风险和工作。

将服务器端 MVC 与骨干网 1 或 2 或其他方式结合起来的正确方法是什么?

4

2 回答 2

4
  1. 您并没有真正废弃 . V,您只是将其表示形式从 HTML 更改为 JSON。您感到困扰是因为您对服务器端的东西感觉更舒服,而这并不是一个真正有效的问题……您将完成需要完成的工作,并随时学习/创建 Javascript 模式。

  2. 这是一种方法,如果您需要禁用 javascript 的后备或受可访问性指南的约束,它真的很有帮助。您缺少的部分是您必须在加载页面后重新渲染页面,以将您的模型附加到 DOM 元素。或者,您可以使用为您处理此映射的工具,但这会增加您必须自己权衡的复杂性。

在主干的职业使用中,我们并不一定支持无 javascript 的场景,所以我们只是在初始加载时加载模板 + js,然后让路由器接管并使用更像你第一个想法的东西。因为听起来你才刚刚开始,帮助我们真正开始行动的最重要的事情是意识到模型进行更改然后让你的视图订阅模型更改事件更容易(而不是相反) .

于 2012-04-17T13:53:57.470 回答
1

我不知道 Accepted Way 是什么,但我发现从服务器端组合 V 然后编织 Backbone (等)是有问题的。在非常受控的情况下它可以解决,但如果你的应用程序要在客户端非常繁重,我的建议是忘记在服务器端渲染,只返回 JSON 并让 Backbone 通过某种模板(Mustache 等)处理您的内容的渲染。

是的,您可以完全控制 Backbone 事件,因此您可以控制它们来做您想做的事情。

我听说你要放弃你在服务器端的部分技能。我也是这样,但如果这是您的项目所要求的,我认为您会发现让服务器端渲染更容易。

祝你好运!

于 2012-04-17T13:54:44.453 回答