मैं रेज़र दृश्यों के साथ एमवीसी 3 का उपयोग कर रहा हूं और अपने कई वर्गों के लिए पुन: प्रयोज्य ड्रॉपडाउनलिस्ट बनाना चाहता हूं, लेकिन बहुत सी खोज के बाद मुझे ऐसा कोई उदाहरण नहीं मिला है जो मुझे इसकी आवश्यकता है। ..व्यवसाय वस्तुओं के लिए DropDownList के साथ पुन: प्रयोज्य संपादक टेम्पलेट
इस उदाहरण के लिए मैं दो वर्गों इस तरह है: -
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public Group Group { get; set; }
}
public class Group
{
public int ID { get; set; }
public string Name { get; set; }
}
मैं व्यक्ति के लिए एक काम नियंत्रक/देखें है। दृश्य एक DropDownListFor नियंत्रण नहीं है:
@model Person
...
@Html.DropDownListFor(o => o.Group.ID, (ViewData["groups"] as SelectList))
देखने के लिए, व्यक्ति वर्ग सीधे, नहीं एक मध्यस्थ के मॉडल का उपयोग करता के रूप में मैं इस स्तर पर एक दूसरे से सार एक के लिए एक बाध्यकारी कारण नहीं मिली है।
उपर्युक्त काम ठीक है ... नियंत्रक में मैं समूह से आईडी को देखता हूं, दृश्य से लौटा हुआ व्यक्ति इसे देखता हूं, इसे देखता हूं, और परिणाम के लिए व्यक्ति समूह को सेट करता हूं। काम करता है, लेकिन आदर्श नहीं है।
मुझे यहां एक बाइंडर मिला है: MVC DropDownList values posted to model aren't bound जो मेरे लिए यह काम करेगा, लेकिन मुझे अभी तक यह काम नहीं मिला है ... क्योंकि अगर मैं पुन: उपयोग कर सकता हूं तो यह वास्तव में उपयोगी लगता है।
मैं क्या करना चाहते हैं क्या है एक टेम्पलेट में कुछ इस तरह है: -
@model Group
@Html.DropDownListFor(o => o.Group.ID, (ViewData["groups"] as SelectList))
और इस तरह एक दृश्य में इसका इस्तेमाल करते हैं: -
@Html.EditorFor(o => o.Group)
हालांकि इसके बाद के संस्करण नहीं करता ' टी काम करने लगते हैं ... उपरोक्त संपादक के लिए लाइन पूरी कक्षा के लिए संपादकों को सम्मिलित करती है (उदाहरण के लिए समूह के लिए एक टेक्स्टबॉक्स भी।) टैग के लिए एक ड्रॉपडाउनलिस्ट डालने के बजाय
मेरे ऊपर उपरोक्त टी है Views.c Shared/editorTemplates के तहत Group.cshtml नामक फ़ाइल में emplate,
यदि यह काम करता है, तो जब भी किसी वर्ग के समूह की संपत्ति होती है, तो यह ड्रॉपडाउनलिस्ट संपादक डिफ़ॉल्ट रूप से उपयोग किया जाएगा (या कम से कम अगर कुछ विशेषता द्वारा निर्दिष्ट किया गया है)
प्रदान की किसी भी सलाह के लिए अग्रिम धन्यवाद ...
यह एक अच्छा जवाब है। मैं यह जोड़ना चाहता हूं कि आप टेम्पलेट्स को देखने के लिए 'EditorFor' कहां बता सकते हैं (जैसे कि आप आधारों को देखने के आधार पर विभिन्न टेम्पलेट्स का उपयोग करना चाहते हैं)। '@ Html.EditorFor (x => x.Filters.SelectedImprintId," ~/दृश्य/पुस्तकें/EditorTemplates ", Model.Filters.ImprintItems)': यह इस तरह दिखता है –