Ошибки состояния модели не отображаются правильно - PullRequest
0 голосов
/ 06 октября 2018

У меня странная проблема с ошибками состояния модели в моем asp.net webapi2 (не ядре), отображаемом только как:

\ "\"

Этомой код контроллеров:

     if (!ModelState.IsValid)
        {            
            Log.Verbose("Modelstate NOT valid");

            var errorList = JsonConvert.SerializeObject((from item in ModelState.Values
                             from error in item.Errors
                             select error.ErrorMessage).ToList());

            Log.Verbose("modelstate errors: " + errorList);
            Log.Verbose("resulting object:" + JsonConvert.SerializeObject(computerObject));
            return BadRequest("Modelstate not valid" + errorList);

        }

        Log.Verbose("Modelstate is valid");
        return (Ok("dumped + jsonitem));

Я думаю, что это сработало в начале, но теперь он отображает множество ненужных вещей:

{
    "Message": "Modelstate not valid[\"\",\"\",\"\",\"\",\"\",
\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",
\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",
\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",
\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"
The ComputerOsClientComputer field is required.\"]" 
}

Я перебрал разрывы строк для лучшей читаемости.Исходный результат выглядит следующим образом:

{
    "Message": "Modelstate not valid[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"The ComputerOs field is required.\"]"
}

Хотя я определенно вижу, что «поле ComputerOs является обязательным», я не знаю, что все остальные вещи должны означать: / Как только я разрешу «Поле ComputerOs обязательно, ошибка, остальное остается там, поэтому оно должно что-то значить.

Может кто-нибудь просветить меня?

Спасибо большое!

Штеффен

1 Ответ

0 голосов
/ 08 октября 2018

нашел его!

Одна часть моего запроса json была искажена.

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

public class ComputerLocalGroups
{
    public string Groupname { get; set; }
    public int LocalGroupId { get; set; }
}

то, что я отправил в своем запросе json, было

{
"ComputerLocalGroupsCurrent":[{"Access Control Assistance Operators", 11}]
}

вместо:

{
"ComputerLocalGroupsCurrent":[{"Groupname":"Access Control Assistance Operators", "LocalGroupId":11}]
}

Очень странно, что это вызываеттакого рода «сообщение об ошибке» вместо чего-то более полезного, но это была моя вина в начале, поэтому я не могу пожаловаться: D

...