Как использовать DataAnnotations ErrorMessageResourceName с настраиваемым решением для ресурсов

Я создаю веб-приложение MVC с C #. Поскольку сайт будет многоязычным, я реализовал собственный ResourceManager. Этот класс отвечает за выборку требуемых строк ресурсов из базы данных / кеша в зависимости от текущей культуры потока и пока работает нормально.

Моя проблема в том, что я хотел бы использовать свое настраиваемое решение ResourceManager для получения сообщений об ошибках проверки, например, при использовании атрибута Required для свойства. Можно ли это сделать?


person Mats    schedule 27.02.2010    source источник


Ответы (1)


RequiredAttribute позволяет использовать настраиваемый диспетчер ресурсов:

[Required(
    ErrorMessageResourceType = typeof(CustomResourceManager), 
    ErrorMessageResourceName = "ResourceKey")]
public string Username { get; set; }

ОБНОВИТЬ:

Другая возможность - написать свой собственный атрибут:

public class CustomRequiredAttribute : RequiredAttribute
{
    public override string FormatErrorMessage(string name)
    {
        return YourCustomResourceManager.GetResource(name);
    }
}
person Darin Dimitrov    schedule 27.02.2010
comment
My ResourceManager - это действительно индивидуальное решение, которое никоим образом не подключено к MVC и не реализует никаких интерфейсов, кроме созданного мной. Какие изменения необходимы, чтобы мой ResourceHandler можно было использовать таким образом? - person Mats; 27.02.2010
comment
Требуется ли что-нибудь еще для работы настраиваемых атрибутов? Я пробовал это, и, похоже, это не работает. Нужно ли мне создавать собственный метод расширения EditorFor, чтобы использовать новый тип атрибута? - person Matthew Dresser; 26.10.2013