Как использовать фон-фильтр в Electron?

Вы можете использовать ActionFilter . Это не глобально, но оно перемещает проблему из вашего тела метода в атрибут. Я понимаю, что он полностью не решает вашу проблему, но может быть лучше, чем ничего.

public class ModelStateValidationActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        var modelState = actionContext.ModelState;

        if (!modelState.IsValid)
            actionContext.Response = actionContext.Request
                 .CreateErrorResponse(HttpStatusCode.BadRequest, modelState);
    }
}

И в вашем контроллере:

[HttpPost]
[ModelStateValidationActionFilter]
public IHttpActionResult Post(object model)
{

}

Я считаю, что вы можете установите его и на контроллер. Я действительно не пробовал это, но в соответствии с этим он мог работать.

[ModelStateValidationActionFilter]
public class MyApiController : ApiController
{

}

EDIT:

As @Camilo Terevinto упомянул, что для Core немного отличается. Просто используйте этот ActionFilter, если вы хотите использовать Core.

public class ModelStateValidationActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {    
        var modelState = context.ModelState;

        if (!modelState.IsValid)
            context.Result = new ContentResult()
            {
                Content = "Modelstate not valid",
                StatusCode = 400
            };
        base.OnActionExecuting(context);
    }
}

0
задан RNPF 26 March 2019 в 18:02
поделиться