【问题标题】:MVC same view for both display and edit用于显示和编辑的 MVC 相同视图
【发布时间】:2011-06-15 05:30:53
【问题描述】:

我有一个部分视图用于在弹出对话框中编辑人员详细信息,但他们也希望有“显示”模式,该模式禁用视图中的所有可编辑文本框、下拉列表框和链接,有人可以告诉我有多容易我可以做到这一点(不使用 javascript)

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    您可以使用带有条件的相同视图来禁用编辑器,但这很快就会变得混乱。更好的方法是为可编辑视图创建一个单独的 cshtml 文件,并在调用 View 或 RenderPartial 时指定适当的视图名称。

    【讨论】:

    • 这意味着我必须使用附加的 css 属性(如 disabled="disabled" 或 readonly="true")创建完全相同的标记,这就是我目前正在做的事情。我问的原因是因为我最近收到了更改这种视图的请求(我们在应用程序中有很多)。我正在寻找一种更好的方法来实现它。
    • 您应该为只读视图使用显示模板,为可写视图(例如表单)使用编辑器模板。你不应该手动添加禁用的类(除非那是你所追求的实际视觉效果)
    • 与用于可编辑内容的文本框和无法更改的位的文本相比,这样做看起来很糟糕。如果那是您的客户真正想要的,那么使用条件语句可能是合理的(尽管我会使用语法class='@(Model.IsEditable ? "enabled" : "disabled")'。即便如此,使用单独的模板可能会更好 - 这不是重要的重复,并且可以轻松改进当客户意识到组合版本看起来有多糟糕时。
    • 收件人:RPM1984,我有很多下拉列表框,显示/编辑模板不太好
    猜你喜欢
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2010-10-13
    • 2016-12-16
    • 2012-02-17
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多