dotnetcore 3.1 ModelState имеет только один ключ - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь сделать свою собственную проверку в сервисе dotnectcore, и когда я получаю модель из тела запроса в моем методе Controller, я пытаюсь проверить его в методе GetModelStateErrorFields. Там я надеюсь перебрать ключи состояния модели, чтобы найти недопустимые, но каждый раз, когда я передаю в метод полностью заполненную модель с парой недопустимых полей, в свойстве Keys в GetModelStateErrorFields у меня всегда есть один ключ (первый недопустимый) свойство моей модели) а не все. Я делаю что-то неправильно?

public JsonResult AddNewAuction([FromBody] Auction auction)
    {
        if (auction == null)
        {
            var errorFields = GetModelStateErrorFields<Auction>();
            var error = new DeserializationException(errorFields);                
            return error.ToJson();
        }

        return new JsonResult(null);
    }

protected string GetModelStateErrorFields<T>()
    {
        if (ModelState.IsValid)
        {
            return string.Empty;
        }

        var keys = ModelState.Keys.Where(k => ModelState[k].ValidationState == ModelValidationState.Invalid);
        ...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...