URL/form params passed automatically to action via Html.Action?
<p>We have a layout view in a single-page (Ajax-based) MVC app, that can receive a pair of parameters as URL parameters or form data (to the <code>Home.Index</code> action). The <code>Home.Index</code> controller and layout view do nothing with the two parameters, but the layout view calls <code>Html.Action("Index", "Search")</code> to render a partial view that expects those two parameters.</p>

<p>It works, but how do the parameter values actually pass to <code>Search.Index</code> from <code>Home.Index</code>?</p>

<p>I would have expected that <code>Home.Index</code> would have to put the parameter values in its view data, and the view's call to <code>Html.Action</code> to pass them on to <code>Search.Index</code> in e.g. an anonymous object argument:</p>

<p><code>Html.Action("Index", "Search", new { arg1 = model.arg1, arg2 = model.arg2 })</code> </p>

<p>Apparently, this is not required. So how does it work?</p>

<p>Note: the app was written with MVC 3 but has just been upgraded to MVC 5, where it still works.</p>