【发布时间】:2018-10-06 17:15:22
【问题描述】:
我的 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 字段是必需的错误,其余的都留在那里。所以它必须意味着什么。
谁能赐教?
非常感谢!
史蒂芬
【问题讨论】:
-
好吧,你没有过滤没有错误的属性,所以打印
"" -
为什么我不这样做?我不仅得到“来自 item.errors 中的错误”吗?我以为这些只是错误?即使我更正了“ComputerOsClientComputer”,modelstate 仍然显示为无效。所以必须有另一个错误,否则它应该是有效的,不是吗?
-
我不能回答你,因为你没有发布你的模型,也没有你调用这个动作的数据
标签: c# json asp.net-web-api2