Asp.Net MVC 2 - Изменение строки PropertyValueRequired - PullRequest
13 голосов
/ 14 июня 2010

Используя файл resx в каталоге App_GlobalResources, я смог изменить сообщение по умолчанию для строки PropertyValueInvalid валидаторов модели.

Но это не работает для перевода сообщения, когда значениетребуется (PropertyValueRequired.)

В Global.asax.cs Application_Start () я изменил ключ класса ресурса, например:

DefaultModelBinder.ResourceClassKey = "Messages";

И в файлах Messages.resxЯ поместил две записи:

  • "PropertyValueInvalid" => "O valor '{0}' é inválido para o campo {1}."
  • "PropertyValueRequired" =>"É needário digitar o {0}."

Спасибо.

Ответы [ 4 ]

17 голосов
/ 06 марта 2011

RequiredAttribute не используется DefaultModelBinder.GetValueRequiredResource.Создайте пользовательский класс DataAnnotationsModelValidator.

public class MyRequiredAttributeAdapter : RequiredAttributeAdapter
{
  public MyRequiredAttributeAdapter(ModelMetadata metadata, 
                                    ControllerContext context, 
                                    RequiredAttribute attribute) 
         : base(metadata, context, attribute)
  {
    attribute.ErrorMessageResourceType = typeof (Messages);
    attribute.ErrorMessageResourceName = "PropertyValueRequired";
  }
}

и зарегистрируйте адаптер в Global.asax.

DataAnnotationsModelValidatorProvider.RegisterAdapter(
    typeof(RequiredAttribute), 
    typeof(MyRequiredAttributeAdapter));

Надеемся, что эта справка!

Строки ресурсов сообщения об ошибке повторного использования повторнодля аннотаций данных

9 голосов
/ 05 марта 2011

Это сообщение запекается в System.ComponentModel.DataAnnotations сборку под ключом RequiredAttribute_ValidationError. Вы можете написать собственный атрибут проверки:

public class MyRequiredAttribute : RequiredAttribute
{
    public MyRequiredAttribute()
    {
        ErrorMessageResourceType = typeof(Messages);
        ErrorMessageResourceName = "Required";
    }
}

, а затем внутри вашего Messages.resx файла определите строку Required:

Required => É necessário digitar o {0}.

и, наконец, украсьте свойство модели представления с помощью этого пользовательского атрибута:

public class MyViewModel
{
    [MyRequired]
    public int Foo { get; set; }
}
0 голосов
/ 25 августа 2015

Просто добавь вот так

[Required(ErrorMessage = "Your Error Message, here..!")]
0 голосов
/ 05 марта 2011

А как насчет

[Required (ErrorMessageResourceName="Required",ErrorMessageResourceType=typeof(Messages)]

public string Foo { get; set; }

Required => É necessário digitar o {0}.

Или

Required => {0} field is required.

Ниже приведено полное руководство по локализации asp.net mvc Руководство по локализации asp.net mvc

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