我有一个模型(myModel),它在myProperty上有以下数据注释
[Required(ErrorMessage = "myProperty is required.")]
在api控制器中,我们验证模型如下:
if (!ModelState.IsValid)
{
var errorResponse = new HttpRequestMessage()
.CreateErrorResponse(HttpStatusCode.BadReques, ModelState);
throw new HttpResponseException(errorResponse);
}
我在邮递员中得到的是:
{
"Message": "The request is invalid.",
"ModelState": {
"myModel": [
"An error has occurred."
]
}
}
我想从数据注释中获取错误消息。
答案 0 :(得分:0)
您可以从ModelState.Errors
属性获取模型状态验证中的错误消息,它是ModelError的集合。
答案 1 :(得分:0)
例如,你的模型应该是这样的
[Required]
[DataType(DataType.EmailAddress)]
[EmailAddress]
public string EmailAddress { get; set; }
你的动作方法
if (!ModelState.IsValid) {
var error = ModelState.Where(e => e.Value.Errors.Count > 0).Select(e => new { Name = e.Key, Message = e.Value.Errors.First().ErrorMessage }).ToList();
return Request.CreateResponse(HttpStatusCode.BadRequest, new Dictionary<string, object>()
{
{ "ErrorList", error }
});
}