今天看了一個源代碼,看到里面有這么一段
[MetadataType(typeof(FormMetaData))]
public partial class Form
{
[Bind(Exclude = "Uid")]
public class FormMetaData
{
[ScaffoldColumn(false)]
public object Uid { get; set; }
[ScaffoldColumn(false)]
public object UserId { get; set; }
[ScaffoldColumn(false)]
public object Timestamp { get; set; }
[DisplayName("Form Name")]
[DataType(DataType.Text)]
[Required(ErrorMessage = "A name for your form is required.")]
[StringLength(255, ErrorMessage = "Please ensure that the form title you enter is less than 50 characters.")]
public object FormName { get; set; }
}
}
查了相關的資料,以下是相關的解釋
[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),否則不生成。
