ฉันกำลังดิ้นรนหาวิธีจัดการกับค่าว่างในโมเดลมุมมองของฉัน ค่าเหล่านี้บางส่วนซ้อนกันหรือออบเจ็กต์การนำทางภายในโมเดลของฉัน ฉันจะป้องกันไม่ให้มุมมองของฉันเกิดข้อผิดพลาดในการอ้างอิงที่เป็นโมฆะโดยไม่ต้องใส่ตรรกะเข้าไปในมุมมองได้อย่างไร ดูเหมือนง่ายแต่มันคือจุดสิ้นสุดของวัน
ฉันมีโมเดลมุมมองพร้อมคุณสมบัติการนำทางบางอย่างเช่น:
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 สิ่งนี้จะกำจัด Ethnicity ไม่ว่าจะอยู่ในโมเดลมุมมอง ตัวควบคุม หรือมุมมอง สรุปแล้วฉันควรทำอย่างไรกับ null.null? นิ่งงัน. ขอบคุณ.