【发布时间】:2014-07-09 04:01:17
【问题描述】:
我们有一种情况,我们需要一个只读版本的编辑页面。这是基于权限以及基于对象的状态。我的想法是将其分离成一个全新的视图,但其他意见是将这个逻辑放在编辑视图中。
关于视图结构的一些信息:
表单元素
编辑器模板
部分视图
Kendo 控件(流畅的包装器)
所以为了完成手头的任务意味着只读功能需要存在于多个地方,并且必须通过视图数据传递给编辑器模板/部分视图。
页面上还使用了 HTML 帮助程序/扩展,这意味着也要更新这些。
最后,对于 Kendo 控件,很多网格逻辑(内嵌编辑功能)逻辑都存在于外部 JS 文件中,因此我们还有另一个地方可以修改代码。
我的问题是这方面的“最佳实践”是什么?
我们是否通过将只读视图与编辑视图分开来复制标记 (cshtml)。
或者我们是否更改编辑视图以适应只读功能?
似乎更改编辑视图会为这样一项微不足道的任务增加大量复杂性和依赖性。
【问题讨论】:
-
不要重复自己,我认为单个视图就足够了,给cshtml参数以决定视图是只读的(或使用模型的id),并使用模型的id来决定它是否是新的项目/修改项目
-
就我个人而言,我会打破 DRY(不要重复自己)并为两者创建一个单独的视图。我喜欢让我的观点尽可能易于理解,通过将它们分开并坚持单一职责原则,它更容易实施和维护
标签: c# asp.net asp.net-mvc asp.net-mvc-4 c#-4.0