数据注释隐藏属性/字段

时间:2014-10-02 13:51:35

标签: asp.net-mvc data-annotations

我有一个模特

class Address {
 public int AddressID {get;set;}
 public string Street {get;set;}
 public string City {get;set;}
 public string State {get;set;}
 public int ZipCode {get;set;}
}

在我看来,当我有

@Html.LabelFor(model => model.Address)(假设Address是另一个模型中的复杂属性)

我为每个Address属性都得到一个标签,所以我得到:

AddressID:

街道:

城市:

州:

邮编:

问题是,我不希望ID属性出现,我尝试了这两个注释:

[Display(AutoGenerateField = false)]
[HiddenInput(DisplayValue = false)]

但第一个由于某种原因没有做任何事情,并且HiddenInput不断变为红色波浪线,不确定它们是否都使用相同的System.ComponentModel.DataAnnotations程序集

3 个答案:

答案 0 :(得分:12)

实际上找到了答案..

[HiddenInput(DisplayValue = false)]有效,但我必须添加:

using System.Web.Mvc;

答案 1 :(得分:1)

至于我,当我使用时

[HiddenInput(DisplayValue = false)]

到我的模型道具我仍然在schaffolded创建/编辑视图中显示。当我刚刚从视图中删除该代码时 - 是的,它已不再可见,但在保存编辑后我又遇到了另一个问题:删除编辑器的道具将其值更改为null。 我在编辑视图上使用它来修复它

@Html.HiddenFor(model => model.ImageUrl)

答案 2 :(得分:0)

这不是应该拒绝脚手架在生成的视图上显示字段吗?

[ScaffoldColumn(false)]