我试图找到一条线(或模式),何时通过部分视图更新页面以及何时“仅”使用 JSON 和 JS 库(如 Knockout)。
例如,我有一个排序的项目列表和该列表上的几个不同视图(视角)(例如,一个带有缩略图,一个带有铃铛,一个带有口哨),用户可以在这些视图之间切换。
一种选择是每个视图都由局部视图呈现 - 因此当用户选择一个视图(透视)时,相应的局部视图通过 ajax 下载(控制器 -> 局部视图)。
相反的选择是最初将列表作为 JSON 获取并使用例如 Knockout 呈现视图 - 但我觉得这违反 MVC - 控制器上的操作不会产生视图(或部分视图),但在这种情况下它会产生一个 JSON 列表。在许多情况下,什么时候使用局部视图很清楚,什么时候只使用 JSON - 我的规则通常是视图(HTML 标记)是 View,并且通过 JSON,我只修改 HTML 标记。
现在我不确定应该在哪里画线 - 更广泛地使用 JSON/Knockout 会导致更负责任的 Web 应用程序和更少的流量(客户端只下载一次数据,并且在客户端渲染/更新实际视图),但是我不确定它是否“正确”。
那么,何时通过局部视图更新页面以及何时使用 JSON/JS?
编辑:
换句话说 - 在 ASP.NET MVC + Razor 场景中,除了将服务器工作负载卸载到浏览器之外,使用客户端模板有什么好处吗?