CSharp-Single-EFCore/Bunny.Common/Attribute/ValidateModelStateAttribute.cs

27 lines
830 B
C#

using System.Net;
using Bunny.Dao.Common.Result;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace Bunny.Common.Attribute;
/// <summary>
/// 全局请求表单验证拦截器
/// </summary>
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<string>.Error(HttpStatusCode.BadRequest, errorMessage);
// 重新复写返回结果
actionContext.Result = new ObjectResult(result);
}
}