(PartialView) The model item passed into the dictionary is of type 'Customer', but this dictionary requires a model item of type 'UserProfile'

Make sure your Model.UserProfile is not null.

I found your post trying to debug the same error, and it turned out I hadn't initialised my "Model.UserProfile" equivalent.

I guess what's happening here, is that if a null model is passed to RenderPartial, it defaults to using the main view's model? Can anyone confirm this?


If Model.UserProfile is null, it will attempt to pass in your customer model.

Two ways to get around this:

@model Customer

@Html.Partial("_UserProfile", (UserProfile)Model.UserProfile, new ViewDataDictionary())

Or:

@model Customer

if (Model.UserProfile != null)
{
   @Html.Partial("_UserProfile", (UserProfile)Model.UserProfile)
}