我在ASP.NET MVC 4.0应用程序中使用Entity Framework,我想知道如何防止或隐藏我的实体中的字段在强类型视图中生成?现在,在我不想要的视图上生成了几个主键字段和时间戳字段。
我知道将属性设置为internal
而不是public
,但我不确定这将产生的下游总效果。我更喜欢在属性上使用数据注释,但我尝试过的是阻止Controller脚手架或将它们作为隐藏字段。我更喜欢让他们保持公开,但不会在强类型视图中生成。
修改
要生成强类型视图,请在Visual Studio中添加新的“视图”,然后在对话框中选择要对其进行建模的类。这反过来将创建一个视图,其中包含类的属性所表示的所有控件。例如,创建LastName
字段如下:
@Html.EditorFor(model => model.FirstName)
答案 0 :(得分:20)
回答问题
属性
[ScaffoldColumn(false)]
或
[Display(AutoGenerateField=false)]
之前,不需要的属性会阻止de designer为这些属性生成脚手架字段。
答案 1 :(得分:7)
要通过数据注释从UI隐藏属性,请使用
修饰属性 [ScaffoldColumn(false)]
它们将被编辑器模板忽略。
答案 2 :(得分:4)
您应该使用仅包含所需属性的单独ViewModel类。