Проблема с привязкой DateTime и десятичной дробью при использовании другой культуры - PullRequest
0 голосов
/ 31 марта 2019

Недавно я перенес проект на Core 2.2 и ABP 4.4. С тех пор у меня возникают проблемы с привязкой DateTime и десятичных дробей. Все работает хорошо, когда для культуры установлено значение «en», но когда я изменяю его на «hr» (хорватский), он говорит: «Не удалось преобразовать строку в DateTime: 19.06.2019». В основном это 19 как месяц, а 06 как день.

https://imgur.com/DDkIAYb

Другая проблема возникает с десятичными числами, потому что разделитель по умолчанию в культуре "hr" - запятая. Я зарегистрировал культуры в Startup и до того, как все заработало нормально.


var supportedCultures = new[]
  {
    new CultureInfo("hr"),
    new CultureInfo("en")
  };

services.Configure<RequestLocalizationOptions>(options =>
  {
    options.DefaultRequestCulture = new RequestCulture("hr");
    options.SupportedCultures = supportedCultures;
    options.SupportedUICultures = supportedCultures;
  });

Я заметил, что все это хорошо работает с "обычными" контроллерами, и проблема возникает, когда я вызываю методы службы приложения. Установка свойства UseMvcDateTimeFormatForAppServices в модуле WebCore не помогла.


Configuration.Modules.AbpAspNetCore()
  .CreateControllersForAppServices(
    typeof(BIApplicationModule).GetAssembly()
  );

Configuration.Modules.AbpAspNetCore().UseMvcDateTimeFormatForAppServices = true;

Есть предложения, пожалуйста?

...