C#MVC覆盖所需的注释错误消息不起作用

时间:2013-06-18 16:31:25

标签: c# validation asp.net-web-api

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

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”。

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

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

有什么想法吗?

0 个答案:

没有答案