使用dataannotation属性将属性设置为只读

时间:2014-03-09 07:09:07

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

我有属性名称,我想要只读。所以在viewmodel中我用属性readonly装饰了这个属性,如

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

并在编辑视图中我有

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

我仍然可以在文本框中编辑make更改。

我是否应该使用某些css类在视图端禁用此文本框,或者这应该足够了(如果这就是为什么这个解决方案不起作用的情况)。

3 个答案:

答案 0 :(得分:1)

您是否考虑使用@ Html.DisplayFor而不是明确要求编辑的EditorFor?

答案 1 :(得分:1)

尝试使用可编辑的attubute

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

另见q& a's

Does ReadOnly(true) work with Html.EditorForModel?

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

答案 2 :(得分:0)

Mark a field "Read Only" with Data Annotations

中查看我的答案

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