我是如何做的如果在MVC5中通过函数validation

如果电子邮件存在function检查我想显示错误

我怎么做的?

[RequiredIf(BL.datafuncs.checkIfExist(email) == true, ErrorMessage = "email already exist")] public string email { get; set; } 

RequiredIf属性用于根据另一个属性的值validation所需的属性。 例如,如果您的模型包含属性bool NotifyMeByEmailstring EmailAddess那么您可以按如下方式应用它。

 public bool NotifyMeByEmail { get; set; } [RequiredIf("NotifyMeByEmail", ErrorMessage = "Please enter you email address")] public string EmailAddress { get; set; } 

然后在视图中,如果未选中NotifyMeByEmail的复选框,则会为EmailAddress生成validation错误。

看起来你实际上想要validation用户输入的电子邮件在他的数据库中是否已经存在,在这种情况下你需要一个[Remote]属性(标准的MVC,而不是万无一失)。 如何:在ASP.NET MVC中实现远程validation

自定义属性嵌入在程序集中,它们不是运行时的东西,所以你永远不能在属性参数中放置一个函数。 我建议您在控制器调用中进行检查并相应地执行一些操作