Вход | Регистрация
 

ASP.Net, MVC - как русифицировать дату?

ASP.Net, MVC - как русифицировать дату?
Я
   Sabre
 
27.08.21 - 12:35
У меня такая проблема - представление (страница HTML) проверяет дату в формате ДДММГГГГ, а бэкэнд - в формате ММДДГГГГ. Из за этого получается каламбур: если нужно ввести день месяца больше, чем 12, то в формате 13.01.2000 ругается проверка на странице, а если 01.13.2000 - то уже ругаются темные силы бэкенда (они, кстати, предупреждение на страничку и отправляют).
Часть проблем решил, добавив у свойств классов такое:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy}", ApplyFormatInEditMode = true)]

Однако теперь фронт не принимает входящее значение даты с бэкэнда.
Так можно очень долго возиться, и врядли получится все как надо. Решил спросить тут - уверен, у российских программистов это тривиальная процедура настройки приложения.
   Sabre
 
1 - 27.08.21 - 12:36
Кстати, вот это вот не работает - {0:yyyy}. Но это уже другая история... Работает так: "{0:dd'/'MM'/'yyyy}"
   Sabre
 
2 - 27.08.21 - 12:50
В HTML под капотом при открытии вот так: value="27/08/2021" (пользователь же видит пустое представление даты)
После того, как пользователь выберет сам: value="2021-08-27"
   Sabre
 
3 - 27.08.21 - 12:59
Наковырял вот что:
Если у свойства класса подставить буржуйский формат даты, то в этом формате данные попадают под капот HTML, а пользователь уже видит дату в другом, нормальном, нашем формате. В общем, вот так дата передается на фронт нормально:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[Display(Name = "Дата постройки здания")]
public DateTime? BuildingConstructionDate { get; set; }

Если найти, где настройка глобализации в приложении и выставить российскую, то все будет хорошо. Вот это в файле gloval.asax не срабатывает:
  <system.web>
    <globalization culture="ru-RU" uiCulture="ru-RU" />
   Serginio1
 
4 - 27.08.21 - 13:48
Лучше здесь вопросы задавать http://rsdn.org/
   Serginio1
 
5 - 27.08.21 - 14:12
   Sabre
 
6 - 27.08.21 - 14:21
(4) (5) На стаке я уже давно с индусами тусуюсь, а вот про rsdn почему то впервые слышу. Из наших все время попадался только cyberforum
   Serginio1
 
7 - 27.08.21 - 17:03
rsdn старый сайт. Сейчас там поутихло по сравнению с нулевыми, но тусуются грамотные прогеры.
В любом случае лучше задавать вопросы по C# точно не на этом форуме
   Fram
 
8 - 27.08.21 - 17:30
Работа с датой в вебе это полный пи...! Независимо от языка. Значение в HTML всегда в формате гггг-мм-дд. И вот вокруг этого надо уже плясать и во фронте и в бэке
   Fram
 
9 - 27.08.21 - 17:38
Либо забить на input type="date" и писать свой input с обработкой ввода каждого символа

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.