我有一个web-api-2
端点http://mydomain/user/add,它接受带有函数签名的HTTPPut
public HttpResponseMessage AddUser(User user)
用户模型
public class User
{
public string UserName { get; set; }
public string Password { get; set; }
public int Age { get; set; }
}
现在,假设终端客户端现在传递了这样的无效请求。
var user = {
"UserName": "John Doe",
"Password": "passw0rd",
"Age": "35blah"
};
这将在我正在执行的if(!Model.IsValid)
检查中找到。现在我明白了,
"User.Age":{
"ErrorMessage": "",
"Exception": {
"Message": "Error converting value \"35blah\" to type 'System.Int32'. Path 'Price', line 1, position 69."
}
}
当以通用方式以异常方式发生异常时,有没有办法为实体User.Age
设置ErrorMessage,这样我就可以隐藏to type 'System.Int32'. Path 'Price', line 1, position 69.
这将是乱码的最终客户端?我正在寻找类似的东西,
[ExceptionMessage("User Age is invalid.")]
public int Age { get; set; }
有没有办法达到这个结果,或者我必须做一些像
这样的事情var errorMessages = new List < string > ();
var age = Model.User.Age;
foreach(var error in age.Errors) {
errorMessages.Add(
!String.IsNullOrEmpty(error.ErrorMessage) ?
error.ErrorMessage :
"Age is invalid");
}
关于如何进行的任何指示?