How i do Required If validation by function in MVC

2019-02-21 06:11发布

问题:

if email exist by function check i want display error

how i do it?

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

 public string email { get; set; }

回答1:

The RequiredIf attribute is for validating a property that is required based on the value of another property. For example if you model contains properties bool NotifyMeByEmail and string EmailAddess then you could apply it as follows.

public bool NotifyMeByEmail { get; set; }

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

Then in the view, if the checkbox for NotifyMeByEmail is not checked, a validation error is generated for EmailAddress.

It looks like you actually want to validate the the email enter by the user does not already exist in he database, in which case you need a [Remote] attribute (standard MVC, not foolproof). How to: Implement Remote Validation in ASP.NET MVC



回答2:

Custom attributes are embedded in the assembly, they are not run time stuff, so you can NEVER put a function inside the attribute argument. I would suggest you do the check in your controller call and perform some action accordingly