添加依赖
Newtonsoft.Json
自定义返回格式
namespace ResultFilter
{
public class ApiResult<T>
{
public int Code { get; set; }
public string Message { get; set; }
public T Data { get; set; }
}
}
创建Filter
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Newtonsoft.Json;
using System.Net;
using System.Text.Json.Serialization;
namespace ResultFilter
{
public class ResultFilter : Attribute, IResultFilter
{
/// <summary>
/// 返回结果之后
/// </summary>
/// <param name="context"></param>
/// <exception cref="NotImplementedException"></exception>
public void OnResultExecuted(ResultExecutedContext context)
{
}
/// <summary>
/// 返回结果之前
/// </summary>
/// <param name="context"></param>
/// <exception cref="NotImplementedException"></exception>
public void OnResultExecuting(ResultExecutingContext context)
{
var result = new ApiResult<IActionResult>
{
Code = 200,
Message = "OK",
Data = context.Result
};
context.Result = new ContentResult
{
// 返回状态码为200,表示正常
StatusCode = (int)HttpStatusCode.OK,
// 设置返回格式
ContentType = "application/json",
Content = JsonConvert.SerializeObject(result)
};
}
}
}
服务注册
局部注册
全局注册
builder.Services.AddControllers(o=>o.Filters.Add(typeof(ResultFilter)));