MVC 3 C # Обязательное расширение атрибута - PullRequest
2 голосов
/ 26 октября 2011

Я попытался расширить атрибут RequiredAttribute, чтобы сделать некоторые локализации. Я написал это:

public class LocalizedRequiredAttribute : RequiredAttribute</p> <pre><code>{ public LocalizedRequiredAttribute(string errorMessageResourceName) { this.ErrorMessageResourceName = string.IsNullOrEmpty(errorMessageResourceName) ? "Required_ValidationError" : errorMessageResourceName; ErrorMessageResourceType = typeof(bop.Core.Resources.Label); } }

На стороне клиента сообщение проверки не отображается. Что случилось? Спасибо за помощь. Лука

Ответы [ 2 ]

4 голосов
/ 18 июня 2012

В своем последующем комментарии вы указали, что проверка на стороне клиента не работает. Похоже, вы задали этот же вопрос здесь , но ради StackOverflow я предоставлю ответ.

Класс LocalizedRequiredAttribute также должен реализовывать IClientValidatable, чтобы заставить проверку на стороне клиента работать:

using System.Web.Mvc;
public class LocalizedRequiredAttribute : RequiredAttribute, IClientValidatable
{
    // your previous code

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
    {
        yield return new ModelClientValidationRule
        {
            // format the error message to include the property's display name.
            ErrorMessage = FormatErrorMessage(metadata.DisplayName),

            // uses the required validation type.
            ValidationType = "required"
        };
    }
}
1 голос
/ 26 октября 2011

Посмотрите на это и это сообщения Дарина Димитрова.

Надеюсь, это поможет.

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