कैसे आप एक नेस्टेड मॉडल में DisplayNameFor
का उपयोग करते हैं में DisplayNameFor का उपयोग करते हैं - यानी .:कैसे आप एक नेस्टेड मॉडल
public class Invoice
{
public int InvoiceId { get; set; }
public string CustomerName { get; set; }
public string Contact { get; set; }
public IList<InvoiceItem> InvoiceItems { get; set; }
}
public class InvoiceItem
{
public int InvoiceItemId { get; set; }
public int InvoiceId { get; set; }
[Display(Name = "Item Heading")]
public string Item { get; set; }
[Display(Name = "Item Description")]
public string Description { get; set; }
public virtual Invoice Invoice { get; set; }
}
मैं नेस्टेड आइटम के माध्यम से लूप इस प्रकार कर सकते हैं के रूप में:
@foreach (var item in Model.InvoiceItems)
{
@Html.DisplayFor(modelItem => item.Item)
<br />
@Html.DisplayFor(modelItem => item.Description)
<br />
}
लेकिन मैं कैसे मैं करने के लिए मिलता है: [Display(Name = "Item Heading")]
@Html.DisplayNameFor(modelItem => modelItem.Item)
मैं त्रुटि मिलती है: 'inv5.Models.Invoice' does not contain a definition for 'Item' and no extension method 'Item' accepting a first argument of type 'inv5.Models.Invoice' could be found
धन्यवाद, मार्क
वाह, मैं इसे कभी नहीं देखा होगा की है, ईमानदारी से मिनट की जोड़ी के लिए यह घूर रहा था :))) –
हाय-पॉइंट लेयर नाम - लेकिन मैं लूप में प्रवेश करने से पहले DisplayNameFor दिखाना चाहता हूं। वर्तमान में यदि मैं इसे सुझाए अनुसार बदलता हूं, तो मुझे "नाम 'आइटम' वर्तमान संदर्भ में मौजूद नहीं है" - धन्यवाद, मार्क – Mark
@ फ़िक्सिट: लूप के संदर्भ के बाहर पूरी तरह से एक अलग कहानी है। आप 'modelItem.InvoiceItems.First() आइटम' जैसी कुछ कोशिश कर सकते हैं। यदि सूची 'DisplayNameFor' वास्तव में कैसे काम करती है, इस पर निर्भर करता है कि सूची खाली है तो _might_ अपवाद फेंक दें। (मैंने कभी इसके आंतरिक भाग पर नहीं देखा है।) – David