我们需要一个只读版本的编辑页面。这是基于权限以及基于对象的状态。我的想法是把它分成一个全新的视图,但其他意见是将这个逻辑放在编辑视图中。
有关视图结构的一些信息:
表单元素
编辑模板
部分观点
Kendo控件(流畅的包装器)
因此,为了完成手头的任务意味着只读功能需要存在于多个地方,并且必须通过视图数据传递给编辑器模板/部分视图。
页面上还使用了HTML帮助器/扩展,这意味着也要更新它们。
最后,使用Kendo控件,外部JS文件中存在很多网格逻辑(内联编辑功能)逻辑,因此我们还有另一个地方可以修改代码。
我的问题是什么是最佳做法'在这方面?
我们是否通过将只读视图与编辑视图分开来复制标记(cshtml)。
或者我们是否更改了编辑视图以适应只读功能?
似乎改变编辑视图会为这样一个琐碎的任务增加很多复杂性和依赖性。
答案 0 :(得分:3)
您可以在视图中使用razor条件共享单个视图以获取只读和可编辑的元素,但是如果视图内容复杂处理或元素很复杂>,我建议您使用单独的视图并从控制器的方法发送相应的视图取决于您的标准。
您还可以直接使用 Html.EditorForModel 根据模型数据注释或 Html.DisplayForModel 呈现元素,以便将所有模型属性呈现为只读目的。