Я изо всех сил пытаюсь найти способ справиться с нулевыми значениями в моей модели представления. Некоторые из этих значений являются вложенными объектами или объектами навигации в моей модели. Как мне избежать, чтобы в моем представлении была пустая ошибка ссылки, не вводя логику в представление? Это кажется легким, но это конец дня.
У меня есть модель вида с некоторыми навигационными свойствами, такими как:
ViewModel.cs
public class ViewModel
{
public ViewModel () {}
public ViewModel (Contact contact, IDemographicService demographicService)
: this()
{
Id = contact.Id;
Name = contact.Name;
EthnicityId = contact.EthnicityId;
if(EthnicityId > 0 || EthnicityId != null)
Ethnicity = deomographicService.GetEthnicityById((int)contact.EthnicityId);
}
public int Id {get;set;}
public string Name {get;set;}
public int? EthnicityId {get;set;}
public Ethnicity Ethnicity {get;set;}
}
Я пропущу контроллер, потому что это не главное в моем вопросе. (Я знаю, что логика может идти в контроллере, но я решил поместить его во ViewModel).
MyView.cshtml
@model ViewModel
<ul>
<li>@Model.Name</li>
<li>@Model.Ethnicity.Name</>//This is the null reference.
</ul>
Полагаю, я мог бы определить только строку «EthnicityName» (и если null возвращает null) вместо целого объекта, но есть случаи, когда мне нужно более одного свойства из объекта Ethnicity. Это исключает этническую принадлежность, независимо от того, находится ли она в модели представления, контроллере или представлении. Короче говоря, что мне делать с null.null? Тупик. Спасибо.