ฉันเชื่อว่ามันค่อนข้างง่ายดูเหมือนฉันจะหาวิธีที่ถูกต้องในการแสดงชื่อที่แสดงสำหรับรายการภายในรายการภายในโมเดลของฉันไม่ได้
โมเดลที่เรียบง่ายของฉัน:
public class PersonViewModel
{
public long ID { get; set; }
private List<PersonNameViewModel> names = new List<PersonNameViewModel>();
[Display(Name = "Names")]
public List<PersonNameViewModel> Names { get { return names; } set { names = value; } }
}
และชื่อ:
public class PersonNameViewModel
{
public long ID { get; set; }
[Display(Name = "Set Primary")]
public bool IsPrimary { get; set; }
[Display(Name = "Full Name")]
public string FullName { get; set; }
}
ตอนนี้ฉันต้องการสร้างตารางเพื่อแสดงชื่อทั้งหมดของบุคคลและรับ DisplayNameFor FullName เห็นได้ชัดว่า
@Html.DisplayNameFor(model => model.Names.FullName);
จะไม่ทำงานและ
@Html.DisplayNameFor(model => model.Names[0].FullName);
จะแตกถ้าไม่มีชื่อ มี 'วิธีที่ดีที่สุด' ในการรับชื่อที่แสดงที่นี่หรือไม่?
List<PersonNameViewModel>
คุณมีแล้วก็ยังปลอดภัยที่จะใช้การแสดงออกIEnumerable<PersonNameViewModel>
model => model.Names.First().FullName
ถูกต้องหรือไม่ ที่กล่าวว่าฉันคิดว่าฉันชอบdummyModel
ตัวอย่างที่ดีที่สุดในสามคน มิฉะนั้นคุณอาจมีคุณสมบัติหลาย ๆmodel.Names[0].
อย่างที่คุณจำเป็นต้องพิมพ์หรือวางใน จากนั้นอีกครั้งบางทีคุณควรปรับโครงสร้างส่วนเป็นมุมมองบางส่วนซึ่งยอมรับList
หรือIEnumerable
เป็นแบบจำลอง