में एनम से ड्रॉपडाउन सूचियों में चयनित आइटम क्षमा करें यदि यह एक डुप्लिकेट है, तो मेरी खोज कुछ भी नहीं हो गई।ASP.net एमवीसी
मैं निम्न विधि का उपयोग कर रहा enum प्रकार के लिए सूचियों ड्रॉप डाउन उत्पन्न करने के लिए (यहाँ से उठाया: http://addinit.com/?q=node/54):
public static string DropDownList(this HtmlHelper helper, string name, Type type, object selected)
{
if (!type.IsEnum)
throw new ArgumentException("Type is not an enum.");
if(selected != null && selected.GetType() != type)
throw new ArgumentException("Selected object is not " + type.ToString());
var enums = new List<SelectListItem>();
foreach (int value in Enum.GetValues(type))
{
var item = new SelectListItem();
item.Value = value.ToString();
item.Text = Enum.GetName(type, value);
if(selected != null)
item.Selected = (int)selected == value;
enums.Add(item);
}
return System.Web.Mvc.Html.SelectExtensions.DropDownList(helper, name, enums, "--Select--");
}
यह ठीक काम कर रहा है एक बात को छोड़कर। यदि मैं ड्रॉपडाउन सूची को अपने मॉडल पर संपत्ति के समान नाम देता हूं तो चयनित मान ठीक से सेट नहीं होता है। मतलब यह काम करता है:
<%= Html.DropDownList("fam", typeof(EnumFamily), Model.Family)%>
लेकिन यह नहीं करता है:
<%= Html.DropDownList("family", typeof(EnumFamily), Model.Family)%>
क्योंकि मैं नियंत्रक विधि मैं करने के लिए पोस्ट कर रहा हूँ करने के लिए सीधे एक संपूर्ण वस्तु पारित करने के लिए कोशिश कर रहा हूँ, मैं करूंगा वास्तव में की तरह मॉडल पर संपत्ति के लिए नामित ड्रॉपडाउन सूची है। "दाएं" नाम का उपयोग करते समय, ड्रॉपडाउन सही ढंग से पोस्ट करता है, मैं बस चयनित मान सेट नहीं कर सकता।
मैं इस मामले को नहीं लगता कि लेकिन मैं मोनो पर MVC 1 चला रहा हूँ 2.6
संपादित करें: मैं सिर्फ खिड़कियों पर यह परीक्षण किया है, और यह नहीं है मैं एक ही व्यवहार
मैंने वही व्यवहार देखा, और विभिन्न नामित ड्रॉप डाउन सूची का उपयोग करके चारों ओर काम किया। – Nate