Условная валидация в MVC - PullRequest
       0

Условная валидация в MVC

0 голосов
/ 17 октября 2011

В моем приложении я хочу реализовать условную проверку и я новичок в MVC. Мой код выглядит следующим образом.

public class ConditionalValidation : IValidatableObject
    {
        public bool ValidateName { get; set; }
        public String Name { get; set; }

        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            if (ValidateName)
            {
                if (string.IsNullOrEmpty(Name))
                {
                    yield return new ValidationResult("*");
                }
            }
        }
    }

Но когда я получаю доступ к представлению об этом, проверка не работает, либо я установил флажок, либо нет, и страница отправляется без проверки клиентской проверки. Я проверил ModelState.IsVlaid на контроллере, но он также true, поэтому, пожалуйста, предложите, где я работаю.

Спасибо

1 Ответ

1 голос
/ 18 октября 2011

Вам необходимо добавить необходимые атрибуты аннотации данных.

Ссылка здесь: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.requiredattribute.aspx

Попробуйте это ...

using System.ComponentModel.DataAnnotations;

public class ConditionalValidation : IValidatableObject
    {
        public bool ValidateName { get; set; }

        [Required(ErrorMessage=@"Name is required")]
        [Display(Name = "Name")]
        public String Name { get; set; }

        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            if (ValidateName)
            {
                if (string.IsNullOrEmpty(Name))
                {
                    yield return new ValidationResult("*");
                }
            }
        }
    }

ОБНОВЛЕНИЕ : Кроме того, убедитесь, что ваш файл web.config содержит следующее в :

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

и что вы включили следующее на своей странице:jquery.validate.min.jsjquery.validate.unobtrusive.min.js

Вот несколько учебных пособий, которые я нашел: Ненавязчивая проверка клиента в ASP.NET MVC 3 Упражнение 4: использование ненавязчивого jQuery на стороне клиента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...