我是如何做的如果在MVC5中按功能验证

时间:2014-10-29 00:00:18

标签: c# asp.net-mvc-5 foolproof-validation

如果通过功能检查存在电子邮件我想要显示错误

我是怎么做到的?

 [RequiredIf(BL.datafuncs.checkIfExist(email) == true, ErrorMessage = "email already exist")]

 public string email { get; set; }

2 个答案:

答案 0 :(得分:2)

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

public bool NotifyMeByEmail { get; set; }

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

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

看起来您确实想要验证用户输入的电子邮件在数据库中是否已存在,在这种情况下,您需要[Remote]属性(标准MVC,而非万无一失)。 How to: Implement Remote Validation in ASP.NET MVC

答案 1 :(得分:0)

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