2013-10-01 3 views
0

Я представляю PartialView через действие на моем контроллере.PartialView модель пуста возвращает null reference

Это отправляет модель части, которая затем заполняет под-список для каждого родителя, в который входит часть.

Некоторые из родительских объектов не имеют дочерних элементов.

Мне нужно захватить Id из модели в частичном, чтобы связать суб-список с элементом управления Accordion.

Как предотвратить исключение нулевой ссылки, когда дочерняя модель пуста?

Есть ли способ отправить ID прямо из действия?

Текущая попытка ...

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

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

Действие контроллера

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

Главная Просмотреть

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... 
} 
+0

Вы можете разместить остальную часть вашей точки зрения? Я хотел бы видеть, как вы называете частичное. –

+0

Не могли бы вы также опубликовать свои модели? Это немного запутанно, пытаясь понять это, не видя их. –

+0

@JohnH Я добавил ViewModel и код в основном представлении, который вызывает частичное. Ошибка вызвана тем, что ViewModel пуст для некоторых частичных представлений. – melkisadek

ответ

1

Тогда это сделать:

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

Да. Модель правильно переходит к частичной. Я могу получить частичное отображение дочернего под-списка, но я не могу получить список в элемент управления аккордеона без захвата идентификатора в частичном, который относится к каждому уникальному дочернему набору. Если модель пуста, мне просто нужно частично отказаться от тестирования для пустой модели - вот где я боюсь ... – melkisadek

+0

ответьте сейчас – sino

+0

Это прекрасно, спасибо! – melkisadek

Смежные вопросы