title: how filters short-circuit request pipeline?
body: <p>I'm new to ASP.NET Core MVC, just a question on how filters short-circuit request pipeline. I know that setting filter's context.Result will bypass/short-circuit the request pipeline. Below is a scree shot from my textbook:</p>
  
  <p><a href="https://i.stack.imgur.com/zcZ4x.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/zcZ4x.jpg" alt="enter image description here"></a></p>
  
  <p>Let's say I have the following statement in an Action Filter:</p>
  
  <pre><code>public void OnActionExecuting(ActionExecutingContext context)
  {
     context.Result = new StatusCodeResult(StatusCodes.Status403Forbidden);
  }
  </code></pre>
  
  <p>my questions are:</p>
  
  <p>Q1-That means the action method will no be invoked, but how does it actually happen, there must be sth that checks <code>context.Result</code> to determine if the action method should be invoked. so what's this thing?</p>
  
  <p>Q2- Does result filters still apply after the request has been short-circuited?</p>
  
  <p>Q3- if result filters won't apply, how the IActionResult Execution get invoked?</p>