ASP.NET MVC - 编辑和只读的单一视图?

Mik*_*ats 6 c# asp.net asp.net-mvc c#-4.0 asp.net-mvc-4

我们需要一个只读版本的编辑页面.这是基于权限以及基于对象的状态.我的想法是把它分成一个全新的视图,但其他意见是将这个逻辑放在编辑视图中.

有关视图结构的一些信息:

表单元素

编辑模板

部分观点

剑道控制(流畅的包装)

因此,为了完成手头的任务意味着只读功能需要存在于多个位置,并且必须通过视图数据传递给编辑器模板/部分视图.

还有在页面上使用的HTML帮助/扩展,这意味着也要更新它们.

最后,使用Kendo控件,外部JS文件中存在很多网格逻辑(内联编辑功能)逻辑,因此我们还有另一个地方可以修改代码.

我的问题是这方面的"最佳做法"是什么?

我们是否通过将只读视图与编辑视图分开来复制标记(cshtml).

或者我们是否更改编辑视图以适应只读功能?

看起来改变编辑视图似乎会为这样一个简单的任务增加很多复杂性和依赖性.

Hir*_*ana 4

您可以通过在视图中使用剃刀调节来共享只读和可编辑元素的单个视图,但如果视图内容复杂处理或元素,管理起来似乎很复杂,我建议您使用单独的视图并从控制器发送适当的视图行动方法取决于您的标准。

您还可以直接使用Html.EditorForModel根据模型数据注释渲染元素,或使用Html.DisplayForModel渲染所有模型属性以用于只读目的。

  • 我也更喜欢单独的观点。随着需求的变化,逻辑可能会变得混乱,如果您不及时重构,当您尝试拆分视图时,您可能会花费数周的时间来解开代码。 (4认同)