2012-05-02 10 views
5

Ben benim eylem Aşağıdaki kod:MVC için C# içindeki "00" ve "" değerleriyle kendi SelectList'imi nasıl oluşturabilirim?

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

ve görünümde: Artık

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

Ben sadece bir kod olarak istiyorum benim eylem yüzden dinamik listesi oluşturmak istiyoruz basit Seçici ile değerler: 00 ve "" böylece benim görüşüme gittiğimde boş bir seçim kutusu görüyorum.

Birisi bunu C# 'da nasıl yapabileceğimi açıklayabilir. Kumandanızda olarak

cevap

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); 

senin görünümünde:

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

Not MVC beri new { id = "AccountId" } eklemeye gerek zaten kimliği olduğunu kontrol verecektir.

Düzenleme:

sadece neden controller içerisinde boş değil, bir seçim listesini oluştururken listede aşağı boş bir damla gerekiyorsa?

Neyse, burada (görünüm kodu aynı kalır) Eğer yapabilecekleriniz:

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

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

items.Add(emptyItem); 

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

ben belki çok iyi açıklamak vermedi bu basitleştirmek Can. Tek ihtiyacım olan sadece bir boş eşya içeren bir listedir. Son üç ifadeyi bir araya getirebilir miyim? Teşekkürler –

İlgili konular