【发布时间】:2019-03-13 15:51:08
【问题描述】:
如何创建一个自定义操作过滤器来检查 ModelState 是否有效,如果不是,它会将 ModelState 错误返回到同一视图? 我想编写一个自定义操作过滤器,在所有 POST 请求之前,确保 ModelState 有效,如果 ModelState 无效,它会将 ModelState 错误返回到同一视图。
这是我的示例代码。但我真的不知道如何将 ModelState 错误返回到同一个视图。
namespace Site.Web.Infrastructures.CustomValidationAttribute
{
public class GlobalMvcValidateModelStateAttribute : ActionFilterAttribute
{
public override Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
if (!context.ModelState.IsValid)
{
List<string> list = (from modelState in context.ModelState.Values from error in modelState.Errors select error.ErrorMessage).ToList();
//Also add exceptions.
list.AddRange(from modelState in context.ModelState.Values from error in modelState.Errors select error.Exception.ToString());
context.Result = new BadRequestObjectResult(list);
}
return base.OnActionExecutionAsync(context, next);
}
}
}
【问题讨论】:
-
请包含一些代码,以便准确地回答您的问题
-
你好。我将代码添加到我的问题中
标签: asp.net-core .net-core asp.net-core-mvc