Tôi có một enum cho một trong các thuộc tính của mô hình xem của tôi. Tôi muốn hiển thị một danh sách thả xuống chứa tất cả các giá trị của enum. Tôi có thể làm điều này để làm việc với mã sau đây.Làm cách nào để điền danh sách thả xuống có giá trị enum?
Điều tôi thắc mắc là liệu có cách đơn giản để chuyển đổi từ một enum sang IEnumerable? Tôi có thể làm điều đó theo cách thủ công như trong ví dụ sau, nhưng khi tôi thêm một giá trị enum mới, mã sẽ bị ngắt. Tôi tưởng tượng rằng tôi có thể làm điều đó thông qua sự phản ánh theo điều này example, nhưng có cách nào khác để làm điều này?
public enum Currencies
{
CAD, USD, EUR
}
public ViewModel
{
[Required]
public Currencies SelectedCurrency {get; set;}
public SelectList Currencies
{
List<Currencies> c = new List<Currencies>();
c.Add(Currencies.CAD);
c.Add(Currencies.USD);
c.Add(Currencies.EUR);
return new SelectList(c);
}
}
Giải pháp tuyệt vời! –
Giải pháp tuyệt vời thực sự. Tuy nhiên, nếu mục nhập trong enum không có thuộc tính mô tả, nó không thành công. Vì vậy, thay thế '.First()' bằng '.FirstOrDefault()' và thay vì 'items.Add (giá trị, attrs.GetName());' có 'items.Add (giá trị, attrs! = Null? Attrs.GetName (): value.ToString()); 'Điều đó giúp bạn nhập vào Mô tả cho các mục Enum rõ ràng. – trailmax
được thực hiện, cảm ơn bạn đã sửa chữa. –