4

我有一个用户类,其中包含必填字段的注释。

public class User
{
    [DataMember(Name = "firstName")]
    [Required(ErrorMessage="FIST_NAME_REQUIRED")]
    public string FirstName { get; set; }

    [DataMember(Name = "lastName")]
    [Required(ErrorMessage = "LAST_NAME_REQUIRED")]
    [Custom(ErrorMessage = "CUSTOM_MESSAGE")]
    public string LastName { get; set; }
}

此类是 POST API 调用的参数。

[HttpPost]
public HttpResponseMessage Create(User request)
{
    var response = new ApiResponse();
    if (request != null && ModelState.IsValid)
    {
        [Code here]
    }
    else
    {
        response.Success = false;
        response.Message = ModelState.Values.Count() > 0 ModelState.Values.Select(value => value.Errors).Select(error =>     error.First().ErrorMessage).Aggregate((result, next) => result + ", " + next) :     string.Empty ;
        return Request.CreateResponse(HttpStatusCode.OK, response);
    }
}

我的问题是,例如,当我调用没有名字的 API 控制器操作时,我收到默认错误消息“需要 FirsName 属性”。而不是我的自定义错误消息“FIRST_NAME_REQUIRED”。

自定义验证器的错误消息可以正常工作。

在谷歌上找不到任何关于它的线索,所以它可能是我的代码非常具体的东西,但我想不出任何东西。

任何想法 ?

4

0 回答 0