title: Why Does the ViewComponentResult.ExecuteResult method return void?
body: <p>I'm trying to better understand the "behind the scenes" on view components.  I know that the standard approach is to invoke the <code>ViewComponent</code> by using  </p>
  
  <pre><code> @await Component.InvokeAsync("MyViewComponent", itsModel) 
  </code></pre>
  
  <p>or a view component tag helper in the .cshtml file.</p>
  
  <p>It's possible however to use view componets other ways.  So for example you can return a view directly from a controller by using <code>return ViewComponent("MyViewComponent", itsModel);</code> from an action method.</p>
  
  <p>It seems like it should be possible to easily render the view component to a string.  I see that on the <code>ViewComponetResult</code> returned by <code>ViewComponent("MyViewComponent", itsModel);</code> there is an <code>ExecuteResult</code> method.</p>
  
  <p>In a controller it can be called like this:</p>
  
  <pre><code> ViewComponent("MyViewComponent", itsModel).ExecuteResult(this.ControllerContext);
  </code></pre>
  
  <p>At first blush I'd expect such a method to return a string of html.  But it returns void.  Why?  What is <code>ViewComponentResult.ExecuteResult</code> doing if it's not returning a result?  And how can I render a <code>ViewComponentResult</code> into a string of HTML?</p>