【问题标题】:List to display enum values in a check-list-box列表以在复选框中显示枚举值
【发布时间】:2018-04-26 11:15:51
【问题描述】:

在 viewModel 中,我为一年中的不同月份创建了一个枚举,还创建了一个类的属性。

 public class Lists
{

    public enum Months
    {
        Jan = 0,
        Feb = 1,
        Mar = 2,
        Apr = 3,
        May = 4,
        Jun = 5,
        Jul = 6,
        Aug = 7,
        Sep = 8,
        Oct = 9,
        Nov = 10,
        Dec = 11
    }
 public object Month { get; set; }
 public bool isChecked { get; set; }

在控制器中,我创建了一个对象列表,并尝试使用 GetValues 方法将月份名称添加到该列表中。

public class SchedulerController : Controller
{
    // GET: Scheduler
    [HttpGet]
    public ActionResult schedulerIndex()
    {
        List<Lists> lst = new List<Lists>();
lst.Add(new Lists { Month = Enum.GetValues(typeof(Lists.Months)), isChecked = false });

然后我创建了一个视图,我尝试在其中添加一个清单框。但是,当我尝试运行 webapp 时,复选框中显示的只是 system.string[]。

如何让它显示名称?

【问题讨论】:

标签: c# asp.net-mvc list model-view-controller enums


【解决方案1】:

试试这样的:

Enum.GetNames(typeof(Lists.Months)).OfType<string>()
  .ForEach(m => lst.Add(new Lists { Month = m, isChecked = false });

【讨论】:

    【解决方案2】:

    这解决了问题。我创建了一个 foreach 循环,将枚举的每个值添加到列表中。

            foreach (Lists.Months month in Enum.GetValues(typeof(Lists.Months)))
            {
                lst.Add(new Lists { Month = month, IsChecked = false });
            }
    

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 1970-01-01
      • 2011-07-01
      • 2023-04-05
      • 2016-03-13
      • 2012-03-03
      • 2014-02-21
      • 2011-07-16
      • 2021-08-19
      相关资源
      最近更新 更多