2010-02-08 32 views
8

में रेडियो बटनों की एक सूची प्राप्त करने के लिए एचटीएमएल में एक एनम पास करने के लिए कैसे करें। निम्नलिखित पंक्तियों का उपयोग कर एमवीसी 2 आरसी 2 (सी #) में एक रेडियो बटन सूची प्रस्तुत करने की कोशिश कर रहा हूं:एमटीसी 2 आरसी 2, सी #

<%= Html.RadioButtonFor(model => Enum.GetNames(typeof(DataCarry.ProtocolEnum)), 
         null) %> 

लेकिन यह सिर्फ मुझे निम्नलिखित अपवाद रनटाइम पर देने है:

टेम्पलेट्स केवल क्षेत्र का उपयोग, संपत्ति का उपयोग, एकल आयाम सरणी सूचकांक, या एकल पैरामीटर कस्टम इंडेक्सर भाव के साथ प्रयोग किया जा सकता है।

क्या यह संभव है और यदि ऐसा है, तो कृपया?

उत्तर

6

आप एक /Views/Shared/EditorTemplates/Enum.ascx

में "Enum" कहा जाता है निम्नलिखित सामग्री के साथ

टेम्पलेट बना सकते हैं:

<%= Html.DropDownList(string.Empty, Enum.GetNames(Model.GetType()).ToList().ConvertAll(e => new SelectListItem() { Text = e.ToString(), Value = e , Selected = e.Equals(Model.ToString())})) %> 

यह सिर्फ विश्लेषण करता है enum मूल्यों।

आप

Html.EditorFor(m => m.YourEnumProperty, "Enum" /*The name of the template*/) 
+0

बेशक के साथ इस फोन कर सकते हैं आप DropDownList से इसे बदल सकते हैं - चयन सूची की पीढ़ी मुख्य हिस्सा है। :-) – amarsuperstar

+1

मुझे 'Html.RadioButtonFor' पर समकक्ष विधि दिखाई नहीं दे रही है। ऐसा लगता है कि सहायक विधि केवल एक मान लेती है। क्या कोई विकल्प है जो ओपी पूछता है? –

+0

-1 'रेडियोबटन' और 'रेडियोबटन' 'चयनसूची' नहीं लेते हैं। – Stijn

संबंधित मुद्दे