<p>In my main page (call it <code>index.aspx</code>) I call  </p>

<pre><code>&lt;%Html.RenderPartial("_PowerSearch", ViewData.Model);%&gt;
</code></pre>

<p>Here the <code>viewdata.model != null</code>
When I arrive at my partial:</p>

<pre><code>&lt;%=ViewData.Model%&gt;
</code></pre>

<p>Says <code>viewdata.model == null</code></p>

<p>What gives?!</p>

Have you tried just passing in ViewData instead of ViewData.Model? This is an abridged version what I use in my helpers (shamelessly stolen from the Storefront series):
```
```
/// <summary>
    /// Renders a LoggingWeb user control.
    /// </summary>
    /// <param name="helper">Helper to extend.</param>
    /// <param name="control">Type of control.</param>
    /// <param name="data">ViewData to pass in.</param>
    public static void RenderLoggingControl(this System.Web.Mvc.HtmlHelper helper, LoggingControls control, object data)
    {
        string controlName = string.Format("{0}.ascx", control);
        string controlPath = string.Format("~/Controls/{0}", controlName);
        string absControlPath = VirtualPathUtility.ToAbsolute(controlPath);
        if (data == null)
        {
            helper.RenderPartial(absControlPath, helper.ViewContext.ViewData);
        }
        else
        {
            helper.RenderPartial(absControlPath, data, helper.ViewContext.ViewData);
        }
    }
```
```
Note that I pass in the current ViewData and not the Model.