c# - ASP.NET MVC - 编辑和只读的单一 View ?

标签 c# asp.net asp.net-mvc asp.net-mvc-4 c#-4.0

我们有一种情况需要编辑页面的只读版本。这是基于权限以及基于对象的状态。我的想法是将其分离到一个全新的 View 中,但其他意见是将此逻辑放在编辑 View 中。

关于 View 结构的一些信息:

表单元素

编辑器模板

局部 View

Kendo 控件(流畅的包装器)

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

页面上还使用了 HTML 帮助器/扩展,这意味着也要更新它们。

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

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

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

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

似乎更改编辑 View 会为这样一个微不足道的任务增加很多复杂性和依赖性。

最佳答案

您可以通过在 View 中使用 Razor 条件来共享单个 View 用于只读和可编辑的元素,但是如果 View 内容复杂处理或元素,它似乎管理起来很复杂,我建议您根据您的标准使用单独的 View 并从 Controller 的操作发送适当的 View 方法。

您还可以根据模型数据注释直接使用 Html.EditorForModel 来呈现元素,或者使用 Html.DisplayForModel 来呈现所有模型属性以供只读。

关于c# - ASP.NET MVC - 编辑和只读的单一 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24645184/

相关文章:

javascript - Ajax 调用后 HTML 表格不会更新

asp.net-mvc - 使用布局时如何在 View 中添加脚本 src

c# - 如何在 ASPNET.Core Web 应用程序中发送带有 CORS header 的 HTTP 4xx-5xx 响应?

c# - Select2 With Ajax Asp.net 4.0 webmethod 请求

插入 DOM 的表单的 jQuery 验证

javascript - 再一次,如何使用 javascript 将 ct100 ID 转换为原始 ID?

c# - 将base64转换为图像并在gridview中显示

c# - 在二进制流上实现 ReadLine() 的最有效方法是什么?

c# - 根据自定义条件防止个别 session 过期?

asp.net-mvc - 如何将 asp.net mvc 部署到我的桌面,以便网络中的所有计算机都可以看到它?