मेरा मानना है कि यह बहुत आसान है, मैं सिर्फ अपने मॉडल के भीतर एक सूची के लिए एक आइटम के लिए प्रदर्शन नाम दिखाने का सही तरीका नहीं खोज सकता।
मेरा सरलीकृत मॉडल:
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
इसके मॉडल के रूप में स्वीकार करता है ।