ASP.NET Core - формат ввода даты изменяется при развертывании в Linux - PullRequest
0 голосов
/ 05 июля 2018

У меня довольно простой проект ядра asp.net (MVC), который включает в себя некоторые поля даты в данных.

Я хочу, чтобы даты отображались в виде дд / мм / гггг, поэтому поля даты получили формат отображения следующим образом:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? AccessExpiresDate { get; set; }

При тестировании в моей среде windows dev все хорошо. Если я хочу ввести 1 декабря 2018 года, я ввожу 12/12/2018, и он сохраняется как таковой. Я возвращаюсь, и это снова отображается как таковое (01/12/2018).

Но при развертывании в linux (Centos) он ведет себя по-другому. Он отображается правильно (дд / мм / гггг), но, похоже, его необходимо ввести как ММ / дд / гггг для редактирования.

Например, если я введу дату как 12.01.2008, сохраню, а затем просмотрю, она будет отображаться как 01.12.2008. Если я вернусь к редактированию, оно будет отображаться как 12/12/2018. Если я затем сохраню его без изменений, а затем снова перейду к просмотру, он отобразится как 01.12.2010.

Если я введу дату как 20/12/2018, она обнулит ее, как если бы она была недопустимой (так как мне кажется, что я ввожу 20-й месяц).

Итак - что здесь происходит? Почему запись даты ведет себя по-разному при развертывании в Linux? Как я могу заставить его всегда ожидать, что дата будет дд / мм / гггг?

Спасибо.

1 Ответ

0 голосов
/ 06 июля 2018

Я нашел ответ в этом сообщении: Как установить культуру для привязки даты в Asp.Net Core?

Я положил следующий код в Startup.Configure, и все было хорошо:

    var supportedCultures = new[] { new CultureInfo("en-AU") };
    app.UseRequestLocalization(new RequestLocalizationOptions
    {
        DefaultRequestCulture = new RequestCulture("en-AU"),
        SupportedCultures = supportedCultures,
        SupportedUICultures = supportedCultures
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...