2010-06-09 15 views
5

Kullanıcı adı, parola vb. Şeylerle basit bir model/görünümüm var ve yardımcıları kullanmak için iyi bir şekilde kullanıyorum.ASP.NET MVC 2 - DropDownListFor'u nasıl kullanırım?

Artık "NumberOfChildren" adlı bir alanım var. İçinde bir sayı (int) depolamak istiyorum ve "Yok", "1", "2" vb. Içeren bir açılır kutu oluşturmasını istiyorum.

Düşüncelerimin, modelin bir listesi veya Bir listeyi döndüren bir yöntem, bu yüzden verileri koyduğum NumberOfChildren_List gibi değerleri belirtebilirim ve sonra DropDownListFor bu listeyi çeker ve bunu, değeri açılır menüde öğenin değeriyle eşleştirir.

Yeryüzünde nasıl çalıştığını anlamaya çalışırken yaklaşık 30 dakika geçirdikten sonra pes ettim ve burayı sormaya karar verdim. Herhangi bir fikir?

Düzenleme: Burada bir nesne olsa nesne hatasının örneğine ayarlanmadı olsun kodlar ...

<%: Html.DropDownListFor(m => m.NumberOfChildren, new SelectList(Model.NumberOfChildrenListValues))%> 

ve modeline

 [Required] 
     [DisplayName("How many children do you have?")] 
     public string NumberOfChildren { get; set; } 

     public IEnumerable<string> NumberOfChildrenListValues 
     { 
      get 
      { 
       List<string> list = new List<string>() { "None", "1", "2" }; 

       return list; 
      } 

      set 
      { 

      } 

     } 

içinde. Fikirler? Metin açılır listeden oluşturma için kullanılacak ve değer NumberOfChildren özelliğine seçilen öğeye bağlamak için kullanılacaktır -

+0

http://stackoverflow.com/questions/2306527/asp-net-mvc-2-html-dropdownlistfor-confusion-with- göz at viewmodel (poss. dupe) – Lazarus

+1

Evet bunu gördüm Birincisi, ama adam zaten bazı şeyler vardır ve kabul edilen cevap tuhaftır. – NibblyPig

cevap

2

her seçenek için metni ve değerini ayarlamanız gerekir (böyle deneyin): sonra

[Required] 
[DisplayName("How many children do you have?")] 
public string NumberOfChildren { get; set; } 

public IEnumerable<SelectListItem> NumberOfChildrenListValues 
{ 
    get 
    { 
     return new[] 
     { 
      new SelectListItem { Value = "0", Text = "None" }, 
      new SelectListItem { Value = "1", Text = "1" }, 
      new SelectListItem { Value = "2", Text = "2" }, 
     }; 
    } 
} 

ve:

<%: Html.DropDownListFor(
    m => m.NumberOfChildren, 
    Model.NumberOfChildrenListValues 
) %>