模型状态错误未正确显示

时间:2018-10-06 17:15:22

标签: c# json asp.net-web-api2

我的asp.net webapi2(不是核心)中的modelstate错误仅显示为一个奇怪的问题:

  

\“ \”

这是我的控制器代码:

     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 :(得分:0)

找到了!

我的json请求的一部分格式错误。

我没有在这里发布请求,因为它很大,而且我不知道是哪个部分导致了错误。 虽然我的模型指出了这一点:

tail

我在json请求中发送的是

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

代替:

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

很奇怪,它导致这种“错误消息”而不是更有用的东西,但这是我一开始的错,所以我不能抱怨:D