Bind 和 ScaffoldColumn


 1   今天看了music MVC源码看到这么一段代码 Bind 和 ScaffoldColumn
 2   
 3   [MetadataType(typeof(FormMetaData))]
 4   public partial class Form
 5   {
 6   [Bind(Exclude = "Uid")]
 7   public class FormMetaData
 8  {
 9  [ScaffoldColumn(false)]
10  public object Uid { get; set; }
11  
12  [ScaffoldColumn(false)]
13  public object UserId { get; set; }
14  
15  [ScaffoldColumn(false)]
16  public object Timestamp { get; set; }
17   [NotMapped]
18  public string UserName{ get; set; } 
19  
20  [DisplayName("Form Name")] 
22  [DataType(DataType.Text)] 
24 [Required(ErrorMessage = "A name for your form is required.")]
25 [StringLength(255, ErrorMessage = "Please ensure that the form title you enter is less than 50 characters.")]
26 public object FormName { get; set; } 
27 
28 
29  }
30 
31  }

 

 

查了相关的资料,以下是相关的解释

[Bind(Exclude = "OrderId")] 的意思是:View里的Model,在你提交给 Action时,不会绑定到Action的参数Model,默认它会绑定。

mvc是自动双向绑定的,它会把model的数据绑定到视图,提交时,又自动把改变后的视图中的数据绑定到model,方便程序员,不用写大量的,this.txtXXX=...;

真的是非常方便
Exclue: 排除,一般自增的列不需要绑定。

[ScaffoldColumn(false)]

public int AlbumId { get; set; 

 

这个[ScaffoldColumn(false)] 主要是在在编辑表单页面Edit.cshtml是否生成这个字段的隐藏域,为True就生成,为False就不生成,为true的话就生成 @Html.HiddenFor(model => model.AlbumId),否则不生成。

[NotMapped]

public int AlbumId { get; set; }

不映射字段到数据库中

 

posted @ 2017-01-13 11:23  骚年丶勿忘初心。  阅读(371)  评论(0编辑  收藏  举报