【问题标题】:make property as readonly using dataannotation attribute使用 dataannotation 属性将属性设为只读
【发布时间】:2014-04-12 07:55:48
【问题描述】:

我有属性名称,我希望它是只读的。所以在视图模型中,我用只读属性装饰了这个属性,比如

 [ReadOnly(true)]
 public string Name { get; set; }

在编辑视图中我有

@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)

我仍然可以在文本框中进行编辑。

我应该使用一些 css 类来禁用视图端的这个文本框还是应该足够了(如果这是这个解决方案不起作用的情况)。

【问题讨论】:

  • 我知道这是一个老问题,但为什么会有 Readonly = true 的验证消息?

标签: c# .net asp.net-mvc


【解决方案1】:

尝试改用可编辑属性

[Editable(false)]
public string Name { get; set; }

另请参阅这些问答

Does ReadOnly(true) work with Html.EditorForModel?

ReadOnly attribute doesn't work in ASP.NET MVC Models

【讨论】:

    【解决方案2】:

    您是否想过使用 @Html.DisplayFor 而不是 EditorFor 明确要求编辑器?

    【讨论】:

      【解决方案3】:

      Mark a field "Read Only" with Data Annotations查看我的答案

      你必须根据情况使用 ReadOnly 和 Editable

      【讨论】:

        猜你喜欢
        • 2013-02-26
        • 1970-01-01
        • 2010-12-02
        • 2013-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多