title: RenderAction RenderPartial
body: <p>From what I have understood there is a big difference between the <code>Html.RenderPartial</code> included in the ASP.NET MVC release and the <code>HTML.RenderAction</code> in the <code>Microsoft.Web.Mvc.ViewExtensions</code> included in MVC Futures.</p>
  
  <p>On my application I have many pages composed from many "widgets" (sort of) each having its own specific function.  </p>
  
  <p>It seemed to me more reasonable to use the <code>RenderAction</code> method as each widget would have a dedicated controller responsible for getting different data and rendering a dedicated view (as opposed to having only one controller and a unique view model to pass to <code>RenderPartial</code> helper to render views). </p>
  
  <p>From the tests I have done having a form that points to a Create action method in a controller like:</p>
  
  <pre><code> &lt;% using (Html.BeginForm("Create", "Message", FormMethod.Post, 
       new { id = "messageCreateForm" })) {%&gt;
  </code></pre>
  
  <p>and calling it with </p>
  
  <pre><code> &lt;% Html.RenderPartial("MessageForm",new MessageDTO()); %&gt;
  </code></pre>
  
  <p>will render correcly a:</p>
  
  <pre><code>&lt;form id="messageCreateForm" method="post" action="/Message/Create"&gt;
  </code></pre>
  
  <p>but with the same equivalent with <code>RenderAction</code> (so using a <code>MessageForm</code> action method on the controller to render the view) would not render correcly so:</p>
  
  <pre><code> &lt;% Html.RenderAction&lt;MessageController&gt;(m =&gt; m.MessageForm()); %&gt;
  </code></pre>
  
  <p>will render in:</p>
  
  <pre><code>&lt;form id="messageCreateForm" method="post" action=""&gt;
  </code></pre>
  
  <p>Note that the action is empty.</p>
  
  <p>Is this the correct way to use the <code>RenderAction</code> helper and is it correct to use it in cases like that?</p>
  
  <p>UPDATE:
  Actually renaming the partial view to _MessageForm renders the form correcly.</p>