0

我试图找到一条线(或模式),何时通过部分视图更新页面以及何时“仅”使用 JSON 和 JS 库(如 Knockout)。

例如,我有一个排序的项目列表和该列表上的几个不同视图(视角)(例如,一个带有缩略图,一个带有铃铛,一个带有口哨),用户可以在这些视图之间切换。

一种选择是每个视图都由局部视图呈现 - 因此当用户选择一个视图(透视)时,相应的局部视图通过 ajax 下载(控制器 -> 局部视图)。

相反的选择是最初将列表作为 JSON 获取并使用例如 Knockout 呈现视图 - 但我觉得这违反 MVC - 控制器上的操作不会产生视图(或部分视图),但在这种情况下它会产生一个 JSON 列表。在许多情况下,什么时候使用局部视图很清楚,什么时候只使用 JSON - 我的规则通常是视图(HTML 标记)是 View,并且通过 JSON,我只修改 HTML 标记。

现在我不确定应该在哪里画线 - 更广泛地使用 JSON/Knockout 会导致更负责任的 Web 应用程序和更少的流量(客户端只下载一次数据,并且在客户端渲染/更新实际视图),但是我不确定它是否“正确”。

那么,何时通过局部视图更新页面以及何时使用 JSON/JS?

编辑:

换句话说 - 在 ASP.NET MVC + Razor 场景中,除了将服务器工作负载卸载到浏览器之外,使用客户端模板有什么好处吗?

4

2 回答 2

1

这可能会被标记为自以为是的问题,但无论如何我都会给出我的想法。这两种技术都有效,但我同意纯 MVVM 不会使用部分视图。

我确实喜欢局部视图,因为 Razor、智能感知以及它内置的利用数据验证的能力。以 MVVM 方式处理验证对我来说似乎更麻烦。

于 2013-10-31T17:52:31.520 回答
1

这取决于您计划的应用程序类型:

如果您正在构建一个需要被搜索引擎抓取的网站,您应该构建一个非 Javascript 版本并使用 jquery 对其进行 Hijax

像 KO 这样的 MVVM 库用于单页应用程序。它们不能被搜索引擎抓取(至少不是开箱即用的)。它们也更难通过跟踪解决方案进行跟踪。

于 2013-10-31T21:37:31.520 回答