Saya kesulitan menemukan cara untuk menangani nilai nol dalam model tampilan saya. Beberapa dari nilai ini adalah objek bersarang atau navigasi dalam model saya. Bagaimana cara menjaga pandangan saya agar tidak memunculkan kesalahan referensi nol tanpa memasukkan logika ke dalam tampilan? Ini tampaknya mudah tetapi ini adalah akhir dari segalanya.
Saya memiliki model tampilan dengan beberapa properti navigasi seperti:
LihatModel.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;}
}
Saya akan melewatkan pengontrol karena itu bukan fokus pertanyaan saya. (Saya tahu bahwa logikanya bisa masuk ke pengontrol tetapi saya memilih untuk memasukkannya ke dalam ViewModel).
Tampilan Saya.cshtml
@model ViewModel
<ul>
<li>@Model.Name</li>
<li>@Model.Ethnicity.Name</>//This is the null reference.
</ul>
Saya kira saya hanya dapat mendefinisikan string "EthnicityName" (dan jika null mengembalikan null) alih-alih seluruh objek tetapi ada beberapa contoh di mana saya memerlukan lebih dari satu properti dari objek Ethnicity. Ini menghilangkan Etnisitas, baik itu dalam model tampilan, pengontrol, atau tampilan. Singkatnya, apa yang harus saya lakukan terhadap null.null? Bingung. Terima kasih.