Ho un hook di API web pre-azione che controllerà ModelState.IsValid. Se ModelState non è valido, non voglio eseguire l'azione e restituire immediatamente il mio messaggio. Come esattamente faccio questo?Web Api - come interrompere la pipeline Web direttamente da un filtro OnActionExecuting
public class ValidateModelStateAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext) {
if (!actionContext.ModelState.IsValid)
{
var msg = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
// Now What?
}
base.OnActionExecuting(actionContext);
}
}
Vedo, quindi chiamo la base o no? Quello che vorrei davvero è che tutti i filtri pre-azione vengano eseguiti, ma non l'azione stessa. In questo modo i filtri di registrazione continuerebbero comunque a funzionare –
sì, puoi chiamare 'base' –