我无法弄清楚如何将服务器端DbContext验证错误返回给客户端.据我所知,Breeze有默认的验证器可以对一些属性做出反应,例如Required,但是所有其他属性呢?我可以为Breeze编写一个自定义JavaScript验证器,它将在客户端进行检查,但我还需要检查以确保该实体在服务器端是有效的.
例如,应用程序要求a Person具有有效的电子邮件地址.恶意用户出现并通过客户端获取电子邮件地址,并使用无法通过EmailAddress验证程序的数据发布到服务器.到目前为止,我对Breeze的体验是,电子邮件地址将保存并且不会冒出任何DbContext实体框架错误.
假设下面的模型,获得任何实体验证错误的最佳方法是什么?
public class PeopleContext : DbContext
{
public PeopleContext()
: base("name=ConnectionString"){ }
public DbSet<Person> People { get; set; }
}
public class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[EmailAddress]
[Required]
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
更新1:
以下是重新创建我遇到的问题的一些说明.
向BreezeSampleTodoItem.cs文件添加新的自定义验证器:
[AttributeUsage(AttributeTargets.Property)]
public class CustomValidator …Run Code Online (Sandbox Code Playgroud)