ASP.NET MVC3:如何使用Html.DisplayForModel和Html.EditorForModel隐藏字段

Doo*_*ght 8 c# asp.net asp.net-mvc asp.net-mvc-3

在我的视图和编辑视图中使用以下两种方法,它们运行模型并自动生成带有标签的字段列表,以显示/编辑.

  @Html.EditorForModel()

  @Html.DisplayForModel()
Run Code Online (Sandbox Code Playgroud)

问题是它们显示每个字段..包括ID字段,这在编辑时是不好的,因为它不应该被更改.

那么,如何隐藏模型中的某些字段.(不从模型中删除字段.)

das*_*dot 13

您可以使用Scaffold属性

[ScaffoldColumn(false)]
public int Id {get;set;}
Run Code Online (Sandbox Code Playgroud)

如果您还希望模型绑定器不触及Id字段(以防止过度发布),您也可以设置ReadOnly-Attribute.

[ReadOnly(true)]
[ScaffoldColumn(false)]
public int Id {get;set;}
Run Code Online (Sandbox Code Playgroud)