【发布时间】:2016-03-03 03:37:13
【问题描述】:
我是 MVC 的初学者。在我的应用程序中,我在左侧(在 div 内)列出了类别(作为按钮)。就在这个 div 的右侧,还有另一个 div 显示与单击的类别相关联的项目。
当单击类别按钮时,我计划调用控制器的操作,该操作将从数据库中检索项目并将这些项目添加到 ViewModel(例如,model.Items = db.Items...),然后使用更新模型并显示项目。
但是,如果在此处进行 Ajax 调用并使用局部视图来显示单击类别的项目是否更好,我会感到好奇。
如果在我的场景中感觉这两种方法之间的唯一区别是页面刷新,它们在速度方面应该是相同的,因为它们都需要相同的数据库调用。
任何人都可以分享 MVC 中针对此类场景的良好实践吗?
【问题讨论】:
-
使用 ajax 会(略微)更快,因为它不需要刷新页面 - 您只需更新现有的 DOM
-
@StephenMuecke 在 MVC 应用程序中通常采用哪种方法?
-
你的问题太宽泛了,但在你的情况下,使用 ajax 似乎是最好的方法 - 你只需将类别的 ID 传递给根据 ID 过滤数据的控制器方法并返回一个局部视图,然后将其附加到 DOM,因为这意味着您不必重新生成页面中的所有其他元素(例如类别列表)
-
使用 jquery 将是这种情况的最佳方法。因为您不必加载必须重新渲染脚本和内容的布局页面。尽可能坚持 MVC 中的 Ajax 调用,技术正在改进,许多单页应用程序已经出现,如果我们仍然为每个新请求使用页面加载,那么就没有意义了。
-
这是一个很好的观点,partial Views 和 Json 的权重取决于场景。假设您有一个带有大量 if 检查和循环的局部视图,并根据 if 等构建 HTML,在这种情况下使用局部视图实际上更好,因为如果我们尝试使用 json 在 Jquery 中构建相同的东西,它可能但是不会那么容易,我们可能会在开发过程中出错。但如果需求是像更新网格、动态下拉或处理页面中的一些 Jquery 插件,我认为 Json 数据会更好,因为许多插件本身使用 json 数据。
标签: ajax asp.net-mvc