Удалить проверку по умолчанию DateTimeOffset - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь удалить текст проверки по умолчанию из поля DateTimeOffset.

<div class="form-group">
            <label asp-for="BirthDate">Birth Date</label>
            <span  style="font-style:italic; font-size:12px;"> Year-month-Day || 2019-12-23</span>
            <br><span asp-validation-for="BirthDate" class="text-danger"></span>
            <input type ="text" asp-for="BirthDate" class="form-control" novalidate/>
        </div>

Контроллер, откуда должен быть передан текст ошибки валидации:

                if (model.BirthDate == null) {
                    ModelState.AddModelError ("BirthDate", "birthdate can not be null");
                    validator = true;
                    break;
                } else {
                    if (!model.BirthDate.ToString().Contains ('-')) {
                        ModelState.AddModelError ("BirthDate", "incorrect format");
                        validator = true;
                        break;
                    }
                }

ApplicationUser.cs

        public DateTimeOffset BirthDate { get; set; }

RegisterViewModel - Viewmodel, которую я использую в представлении регистрации

        public DateTimeOffset BirthDate { get; set; }

Я получаю текст ошибки, например, такой:

Недопустимое значение ''. Который я нигде не написал.

Я попытался указать пользовательский текст проверки в атрибуте Required, но он все равно переопределяется. Я также попытался отключить проверку по умолчанию в Startup.cs следующим образом:

        services.Configure<ApiBehaviorOptions>(options =>
        {
            options.SuppressModelStateInvalidFilter = true;
        });

Все еще не работает.

1 Ответ

1 голос
/ 09 октября 2019

Для пользовательской ошибки DateTimeOffset вы можете попытаться изменить DateTimeOffset на string в RegisterViewModel, например

    public string  BirthDate { get; set; }

, а затем проверить BirthDate с помощью своего кода. После проверки вы можете преобразовать эту строку в ApplicationUser.DateTimeOffset.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...