DisplayFormat (ApplyFormatInEditMode = true, DataFormatString = "{0: dd.MM.yyyy}") отображает дату, как и предполагалось, но при сохранении она конвертируется неправильно - PullRequest
0 голосов
/ 16 февраля 2019

Как говорится в теме:

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

Это прекрасно работает, отображая это:

<div class="form-group">
    <label asp-for="KeyStartDate">@Resources.Global.StartDate</label>
    <input data-toggle="datepicker" asp-for="KeyStartDate" class="form-control" />
    <span asp-validation-for="KeyStartDate" class="text-danger"></span>
</div>

, но когда я отправляю форму, дата разбирается неправильно, например "MM / dd / YYYY».Поэтому, если я выберу дату 01.02.2019 (1 февраля), она будет интерпретирована как 01.02.2017 (2 января).

Что делать?

РЕДАКТИРОВАТЬ:

Часть даты:

$('[data-toggle="datepicker"]').datepicker({ format: 'dd.MM.yyyy' }); 

1 Ответ

0 голосов
/ 19 февраля 2019

Это сработало: (в startup.cs)

var defaultDateCulture = "fi-FI";
var ci = new CultureInfo(defaultDateCulture);
ci.NumberFormat.NumberDecimalSeparator = ".";
ci.NumberFormat.CurrencyDecimalSeparator = ".";

// Configure the Localization middleware
app.UseRequestLocalization(new RequestLocalizationOptions
{
    DefaultRequestCulture = new RequestCulture(ci),
    SupportedCultures = new List<CultureInfo>
    {
        ci,
    },
    SupportedUICultures = new List<CultureInfo>
    {
        ci,
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...