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

C# 使用dataannotation属性将属性设置为只读,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我有我想要的只读属性名。所以在viewmodel内部,我用属性readonly修饰了这个属性,就像 [ReadOnly(true)] public string Name { get; set; } 在我的编辑视图里面 @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) 我仍然可以在文本框中编辑和修改 我应该使用一些css类来禁用视图端的这个文本框,或者这应该

我有我想要的只读属性名。所以在viewmodel内部,我用属性readonly修饰了这个属性,就像

 [ReadOnly(true)]
 public string Name { get; set; }
在我的编辑视图里面

@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
我仍然可以在文本框中编辑和修改


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

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

尝试使用editable attubute

[Editable(false)]
public string Name { get; set; }
也可以看看这些问答

检查我的答案


您必须根据情况使用只读和可编辑

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