我可能已经过时了,但我坚持的一个原则是尽可能避免空值.
但是我发现,对于一个强类型视图,用户输入我想要保存的对象的属性,如果没有输入某些字段,则将它们指定为null.
然后,当您尝试保存更改时,验证将失败.
因此,不是将每个属性设置为空字符串,而是如何自动将表单上的每个TextBox设置为默认为空字符串而不是null?
如果我[Required(AllowEmptyStrings = true)]在视图模型中有声明,则始终在空输入上触发验证.我发现这篇文章解释了它为什么会发生.你知道是否有修复方法吗?如果没有,你如何处理它?
validation unobtrusive-javascript jquery-validate unobtrusive-validation asp.net-mvc-3
我有一个DbContext像这样的基类
public abstract class DbContextBase : DbContext
{
public DbContextBase()
{
}
public DbContextBase(DbContextOptions options)
: base(options)
{
}
public override int SaveChanges()
{
this.ValidateEntities();
return base.SaveChanges();
}
public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken))
{
this.ValidateEntities();
return base.SaveChangesAsync(cancellationToken);
}
public override Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default(CancellationToken))
{
this.ValidateEntities();
return base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken);
}
protected virtual void ValidateEntities()
{
var entities = this.ChangeTracker.Entries().
Where(s => s.State == EntityState.Added || s.State == EntityState.Modified);
foreach (var entity in entities) …Run Code Online (Sandbox Code Playgroud)