我在.NET c#中使用web api,但我不理解不同的响应... Becouse,我正在尝试创建一个标准来将我的服务与前端同步(来自javascript的ajax调用) ...
我创建下一个实体:
public class CustomResponse<T>
{
public bool isValid { get; set; }
public string message { get; set; }
public T data { get; set; }
public CustomResponse()
{
}
public CustomResponse(bool isValid, string message, T data)
{
this.isValid = isValid;
this.message = message;
this.data = data;
}
public CustomResponse(bool isValid, string message)
{
this.isValid = isValid;
this.message = message;
}
}
控制器中的
[HttpGet]
[Route("all")]
public CustomResponse<List<Client>> All()
{
try
{
var result = bllClients.All();
return new CustomResponse<Client>(true, "sucessful", result);
}
catch (Exception ex)
{
return new CustomResponse<Client>(false, ex.Message);
}
}
然后在客户端JS:
function getAll() {
$.ajax({
....
....
success: function(data) {
if(data.isValid) {
//do something
} else {
alert(data.message);
}
}
});
}
这个选项有效吗??? 或者有一些更优化的方式
答案 0 :(得分:0)
为什么不使用IHttpActionResult?
像这样:[HttpGet]
[Route("all")]
public IHttpActionResult All()
{
try
{
var result = bllClients.All();
return Ok(result)
}
catch (Exception ex)
{
return InternalServerError(ex);
}
}
了解更多信息请查看此文章: https://www.exceptionnotfound.net/http-status-codes-in-asp-net-web-api-a-guided-tour/