zl程序教程

您现在的位置是:首页 >  前端

当前栏目

工作总结 mvc外键 public virtual SysUser TransferUser { get; set; } 必须要加 virtual 否则 TransferUser 值为null 还要加[ForeignKey("TransferUser")] Bind 和 ScaffoldColumn(转)

setMVC 总结 工作 quot get 必须 null
2023-09-11 14:14:39 时间

[Table("T_SYS_TRANSFERUSER")]
public class SysTransferUser : DbSetBase
{
[ForeignKey("TransferUser")]
public Guid TransferUserId { get; set; }
public virtual SysUser TransferUser { get; set; }

 

 

 

 

 

Bind 和 ScaffoldColumn(转)

 

今天看了一个源代码,看到里面有这么一段

复制代码
[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),否则不生成。