У меня есть простое приложение ASP.Net Core, которое использует бритву. Пользовательские формы создаются с помощью атрибутов аннотаций модели и данных. Сообщение об ошибке неправильных входных значений по умолчанию является английским. Я знал, что могу перевести сообщение по умолчанию с помощью ' ModelBindingMessageProvider '.
Ниже вы можете найти рабочий путь (в Startup.cs), обновив ' DefaultModelBindingMessageProvider ':
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(o =>
{
// see: https://stackoverflow.com/questions/40828570/asp-net-core-model-binding-error-messages-localization
o.ModelBindingMessageProvider.SetValueMustNotBeNullAccessor(u => "My custom validation error message");
});
}
Я бы предпочел не настраивать перевод прямо в файле startup.cs. Один из способов сделать это - использовать пользовательский класс, который наследуется от ModelBindingMessageProvider.
public class MyModelBindingMessageProvider : ModelBindingMessageProvider
{
public override Func<string, string> ValueMustNotBeNullAccessor => o => "My custom validation error message";
}
Вот мой вопрос:
- Где зарегистрироваться? Мой собственный класс?
- Это хороший способ? Какова лучшая практика atm.?
(реальное приложение, конечно, использует строковые ресурсы)