简体   繁体   中英

PartialView model is empty returns null reference

I'm rendering a PartialView via an Action on my controller.

This is sending a model to the partial which then populates a sub-list for each parent that the partial goes into.

Some of the parent objects don't have children.

I need to capture an Id from the model in the partial to link the sub-list into an Accordion control.

How do I prevent a null reference exception when the child model is empty?

Is there any way to send the ID direct from the Action?

Current attempt...

@using BootstrapSupport
@model IEnumerable<WhatWorks.ViewModels.FamilyListViewModel>

@{ if (string.IsNullOrEmpty(Model.FirstOrDefault().familyId.ToString()))
   {
     do something...
   }
   else
   {
    int modelIndex = Model.FirstOrDefault().familyId; 

Controller Action

    public ActionResult Index(int Id)
    {            
        var model = GetDisplay(Id).OrderBy(i => i.dob).AsEnumerable();            
        return PartialView("_family", model);
    }

Main View

var family = model.GetIdValue();
<div class="accordion" id="@Html.Raw("accordion")@family.Values.FirstOrDefault()@Html.Raw("_b")">
@Html.Action("Index", "Family", new { Id = family["Id"] })
</div>

ViewModel

public partial class FamilyListViewModel
{
    public int Id { get; set; }
    public int familyId { get; set; }
    public string name { get; set; }
etc...
}

Then do this :

@{ if (Model.Count() >0 )
   {
     do something...
   }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM