4 回答
TA贡献1828条经验 获得超13个赞
快速响应是抛出一个ArgumentException带有验证错误描述的错误,在控制器级别捕获它并将其映射到错误响应中,并以异常消息作为内容:
var validPhoneNumber = //your validation logic stuff
if (!validPhoneNumber ){
throw new ArgumentException("Invalid phone number");
}
[HttpPost]
public IActionResult Post([FromBody] Person person)
{
try{
bll.AddNumber(person);
}catch(ArgumentException argumentEx){
return BadRequest(new {Message = argumentEx.Message});
}
// A better approach would be to return the created resource at this point
return this.NoContent();
}
在角度方面,错误有效负载应该在 的实例中可用HttpResponseError。
TA贡献1111条经验 获得超0个赞
您可以使用该模型并将其返回。
public class Response<T>
{
public Response(bool defalut = false)
{
IsSuccess = defalut;
Message = "";
}
public Response(string message)
{
IsSuccess = false;
Message = message;
}
public bool IsSuccess { get; set; }
public string Message { get; set; }
public T Data { get; set; }
}
TA贡献1859条经验 获得超6个赞
我会尝试将验证逻辑封装在一个对象中,序列化该对象并将其发送到 Angular,然后在 Angular 中检查一切是否正常,然后继续,否则显示一些错误消息。
TA贡献1845条经验 获得超8个赞
当格式错误时,您可以抛出异常并简单地返回HttpResponseMessage ,如下所示:
[HttpPost]
public void Post([FromBody] Person person)
{
try
{
bll.AddNumber(person);
}
// Replace with own exception
catch (FormatException e)
{
return new HttpResponseMessage(HttpStatusCode.BadRequest)
{
ReasonPhrase = "Phone number is not correctly formatted"
};
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
- 4 回答
- 0 关注
- 136 浏览
添加回答
举报