2012-05-02 6 views
5

मेरे पास मेरी कार्रवाई में निम्न कोड:मैं एमवीसी के लिए "00" और "" सी के मूल्यों के साथ अपना स्वयं का चयनसूची कैसे बना सकता हूं?

 ViewBag.AccountId = new SelectList(_reference.Get("01") 
      .AsEnumerable() 
      .OrderBy(o => o.Order), "RowKey", "Value", "00"); 

और मेरे विचार में:

@Html.DropDownList("AccountID", null, new { id = "AccountID" }) 

अब तो मेरे कार्रवाई में मैं सिर्फ एक को हार्डकोड चाहते हैं मैं गतिशील सूची बनाने के लिए चाहते हैं मूल्यों के साथ सरल चयनसूची: 00 और "" ताकि जब मैं अपने विचार पर जाऊं तो मुझे बस एक खाली चयन बॉक्स दिखाई देता है।

कोई बता सकता है कि मैं इसे सी # में कैसे कर सकता हूं।

उत्तर

12

अपने नियंत्रक में:

var references = _reference.Get("01").AsEnumerable().OrderBy(o => o.Order); 

List<SelectListItem> items = references.Select(r => 
    new SelectListItem() 
    { 
     Value = r.RowKey, 
     Text = r.Value 
    }).ToList(); 

var emptyItem = new SelectListItem(){ 
    Value = "", 
    Text = "00" 
}; 

// Adds the empty item at the top of the list 
items.Insert(0, emptyItem); 

ViewBag.AccountIdList = new SelectList(items); 

आपके विचार में:

@Html.DropDownList("AccountID", ViewBag.AccountIdList) 

ध्यान दें, MVC के बाद से new { id = "AccountId" } जोड़ने की आवश्यकता नहीं वैसे भी है कि आईडी नियंत्रण दे देंगे।

संपादित करें:

आप केवल इस सूची में नीचे एक खाली बूंद तुम क्यों एक चयन सूची है कि आपके नियंत्रक में खाली नहीं है पैदा कर रहे की जरूरत है?

वैसे भी, यहाँ (देखें कोड एक ही रहता है) आप क्या कर सकते हैं:

List<SelectListItem> items = new List<SelectListItem>(); 

var emptyItem = new SelectListItem(){ 
    Value = "", 
    Text = "00" 
}; 

items.Add(emptyItem); 

ViewBag.AccountIdList = new SelectList(items); 
+0

मैं इस आसान बनाने में कर सकते हैं के रूप में शायद मैं इतना अच्छा नहीं समझा था। मुझे केवल एक खाली वस्तु के साथ एक सूची चाहिए। तो क्या मैं पिछले तीन कथनों को एक में जोड़ सकता हूं? धन्यवाद –

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