筛选不适用于ASP.NET Core MVC项目

时间:2017-12-16 22:45:05

标签: asp.net asp.net-mvc asp.net-core-2.0

我有一个过滤器,可以在ASP.NET Core WebAPI上正常运行,以便在POST和PUT操作上进行模型验证。

问题: 我想在Web MVC项目中使用它。有人可以告诉我应该从过滤器返回什么以使其工作。还需要返回ViewModel吗?

返回context.ModelState无效。

由于

过滤代码

public class ValidateModelAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            //actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
            if ((context.HttpContext.Request.Method == ("POST") | context.HttpContext.Request.Method == ("PUT")) && !context.ModelState.IsValid)
                context.Result = new BadRequestObjectResult(context.ModelState);
        }
    }

1 个答案:

答案 0 :(得分:3)

替换|与||在if语句中

if ((context.HttpContext.Request.Method == ("POST") || context.HttpContext.Request.Method == ("PUT")) && !context.ModelState.IsValid)