Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 672105
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T00:26:51+00:00 2026-05-14T00:26:51+00:00

I have an object which contains models for my ASP.NET MVC web app. The

  • 0

I have an object which contains models for my ASP.NET MVC web app. The Model that is being passed into the view has sub models for “gadgets” on that particular view. Each of these sub models gets passed to a partial view (gadget).

The problem is when I have a null model in the view model. See example below.

View Model:

public class FooBarHolder()
{
     public FooBar1 FooBar1 { get; set; }
     public FooBar2 FooBar2 { get; set; }
}

We pass FooBarHolder into the view and inside the view we make calls such as

<% Html.RenderPartial("Foo", Model.FooBar1); %>
<% Html.RenderPartial("Foo2", Model.FooBar2); %>

Now say for instance that Model.FooBar2 was null. What I am experiencing from the strongly typed partial view is an error that says “This view expected a model of type FooBar2 but got a model of type FooBarHolder.”

Why is this happening instead of just passing in a null?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T00:26:52+00:00Added an answer on May 14, 2026 at 12:26 am

    That’s how the RenderPartial method works (I know should have been documented, blogged about, etc…, me too I find this a little strange). If you do not specify a model or pass null it will use the model of the parent page. To avoid this you might use the null coalescing operator:

    <% Html.RenderPartial("Foo", Model.FooBar1 ?? new Foo()); %>
    

    And if you are really curious as to how this is implemented there’s an excerpt from the relevant parts of the ASP.NET MVC 2 source code:

    // Renders the partial view with an empty view data and the given model
    public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, object model) {
        htmlHelper.RenderPartialInternal(partialViewName, htmlHelper.ViewData, model, htmlHelper.ViewContext.Writer, ViewEngines.Engines);
    }
    
    internal virtual void RenderPartialInternal(string partialViewName, ViewDataDictionary viewData, object model, TextWriter writer, ViewEngineCollection viewEngineCollection) {
        if (String.IsNullOrEmpty(partialViewName)) {
            throw new ArgumentException(MvcResources.Common_NullOrEmpty, "partialViewName");
        }
    
        ViewDataDictionary newViewData = null;
    
        if (model == null) {
            if (viewData == null) {
                newViewData = new ViewDataDictionary(ViewData);
            }
            else {
                newViewData = new ViewDataDictionary(viewData);
            }
        }
        else {
            if (viewData == null) {
                newViewData = new ViewDataDictionary(model);
            }
            else {
                newViewData = new ViewDataDictionary(viewData) { Model = model };
            }
        }
    
        ViewContext newViewContext = new ViewContext(ViewContext, ViewContext.View, newViewData, ViewContext.TempData, writer);
        IView view = FindPartialView(newViewContext, partialViewName, viewEngineCollection);
        view.Render(newViewContext, writer);
    }
    

    Notice how the case of null model is handled.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a Request object which contains a list of Approvers. An approver has
I have a single NSDictionary object which contains a large number of custom objects.
I have a MATLAB class which contains a reference to a java object classdef
I have a unit test which contains the following line of code Site.objects.get(name=UnitTest).delete() and
I have object A which in turn has a property of type Object B
I have an object which straight forward instance variables. Some are NSString, some are
So I have an object which has some fields, doesn't really matter what. I
I have a Serializable object which is supposed to hold a java.awt.Image as its
I have an object instance which I access with the ME as it accesses
I have a Java object which is able to configure itself given an XML

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.