2014-10-02 81 views
4

我有一个模型数据注解隐藏属性/字段

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)(假设地址是另一个模型内部复杂属性)

我得到一个标签为每一个地址属性,所以我得到:

AddressID:

街道:

市:

国家:

邮编:

的问题是,我不希望的ID属性展现出来,我想这两个注解:

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

但是第一个出于某种原因没有做任何事情,而且HiddenInput一直得到一条红色的波浪线,不知道它们是否都使用相同的System.ComponentModel.DataAnnotations级组装

回答

11

才发现其实答案..

[HiddenInput(DisplayValue = false)]的作品,但我不得不添加:

using System.Web.Mvc; 
0

至于我,当我使用

[HiddenInput(DisplayValue = false)] 

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

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