आप तो दृश्य फ़ील्ड के नाम पर व्यूडेटा में कुंजी के नाम से मिलान करें, HtmlHelpers को व्यूडेटा के आधार पर पूरी तरह से खींचने के लिए डिज़ाइन किया गया है वह कुंजी
<%= Html.DropDownList("myList") %>
HtmlHelpers जब उन्हें इस फैशन में उपयोग करते हुए सबसे अच्छा काम करने के लिए (हालांकि कि हमेशा संभव नहीं है) लगता है: मैं करने के लिए अपने दृष्टिकोण को कोड बदलने का सुझाव होगा।
अद्यतन:
कारण यह है जबकि अन्य तरीके नहीं, मैं SelectExtensions.cs के लिए कोड में कबूतर है काम करने के लिए लगता है क्यों उनका विस्तार करने के लिए ...
हालांकि आप कॉल DropDownList , निजी विधि SelectInternal अंततः वास्तविक HTML प्रस्तुत करता है। SelectInternal के लिए हस्ताक्षर लगता है:
DropDownList ("MyList")
DropDownList(string name) ->
SelectInternal(null, name, htmlHelper.GetSelectData(name), true, false, null)
DropDownList ("myItem":
SelectInternal(string optionLabel, string name, IEnumerable<SelectListItem> selectList, bool usedViewData, bool allowMultiple, IDictionary<string,object> htmlAttributes)
यहाँ पथ DropDownList के दो प्रयोगों ले , (सिलेक्टलिस्ट) व्यूडाटा ["myList"]) ड्रॉपडाउन
List(string name, IEnumerable<SelectListItem> selectList) ->
DropDownList(name, selectList, null /* object, htmlAttributes */) ->
DropDownList(name, selectList, new RouteValueDictionary(htmlAttributes)) ->
SelectInternal(null, name, selectList, false, false, htmlAttributes)
तो दिन के अंत में, दो रास्तों के बीच अंतर यह है कि जिस तरह से है कि काम करता है सच SelectInternal के usedViewData पैरामीटर में गुजरता है, जिस तरह से वह काम नहीं करता गुजरता है, जबकि झूठी है।
यह मेरे होने की संभावना एक बग SelectInternal अंदर कहीं नहीं है कि लगता है जब usedViewDataझूठी है।
यह अभी भी एक मुद्दा है जिसे मैं एमवीसी 1.0 –