Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PersonalDetailsViewModel : OnboardingViewModel
- {
- [RequiredLocalized]
- public string FirstName { get; set; }
- ....
- }
- public class RequiredLocalizedAttribute : ValidationAttribute, IClientValidatable
- {
- public override string FormatErrorMessage(string name)
- {
- return " This field is mandatory";
- }
- protected override ValidationResult IsValid(object value, ValidationContext validationContext)
- {
- if (base.IsValid(value))
- {
- return ValidationResult.Success;
- }
- return new ValidationResult(FormatErrorMessage(validationContext.DisplayName));
- }
- public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
- {
- //string errorMessage = this.FormatErrorMessage(metadata.DisplayName);
- string errorMessage = ErrorMessageString;
- // The value we set here are needed by the jQuery adapter
- var requiredLocalizedRule = new ModelClientValidationRule
- {
- ErrorMessage = errorMessage,
- ValidationType = "requiredlocalized"
- };
- yield return requiredLocalizedRule;
- }
- }
- jQuery.validator.unobtrusive.adapters.add("requiredlocalized", function (options) {
- options.rules["requiredlocalized"] = "true";
- });
- jQuery.validator.addMethod("requiredlocalized", function (value) {
- return value.length > 0;
- });
- <input class="customText " data-val="true" data-val-length="Max length is 20 characters only"
- data-val-length-max="20" data-val-requiredlocalized="The field {0} is invalid."
- id="personalDetailsFirstName" maxlength="20" name="PersonalDetailsView.FirstName"
- title="firstName" type="text" value="" />
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement