使用数据注释的mvc模型中的默认值
是否可以使用数据注释为int属性添加默认值
就像是
[DefaultValue=1] public int MyId {get; set;}
试试这个 – 在构造函数中设置默认值:
public class YOURMODEL { public int MyId { get; set; } public YOURMODEL() { MyId = 1; } }
稍后由其他用户添加:自C#6.0(2015)以来,允许使用这种更简单的语法:
public class YOURMODEL { public int MyId { get; set; } = 1; }
构造函数方法当然是正确的(根据@Nilesh),但是此解决方案不会解决您可能已在数据库中创建的任何遗留数据。
您还可以通过生成迁移然后调整AddColumn方法来更新旧数据…
AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false));
更改为:
AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false, defaultValue: 1));
注意,这也将创建一个数据库触发器,它将自动更新INSERT上的默认值,因此从技术上讲,您不需要从数据库角度来看构造函数方法,但使用构造函数设置值仍然是最佳实践。
使用[DefaultValue(false)]
。
( 参考 )
您只能使用类的构造函数执行此操作。 因此,您的代码应如下所示:
public class MyModel { public MyModel() { MyId = 1; } public int MyId {get; set;} }
这将导致在MyId
类的新实例时将MyId
属性设置为1
。 但是,如果模型绑定检测到用户已为MyId
指定了值,则它将使用用户指定的值覆盖默认值。