using System.Net;
using Bunny.Dao.Common.Result;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace Bunny.Common.Attribute;
///
/// 全局请求表单验证拦截器
///
public class ValidateModelStateAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
if (actionContext.ModelState.IsValid) return;
// 表单验证失败
var errorMessage = string.Join(",", actionContext.ModelState.Values
.SelectMany(value => value.Errors)
.Select(value => value.ErrorMessage));
var result = Result.Error(HttpStatusCode.BadRequest, errorMessage);
// 重新复写返回结果
actionContext.Result = new ObjectResult(result);
}
}