使用枚举值下拉菜单

时间:2016-09-14 15:49:43

标签: c# asp.net-mvc entity-framework enums

我已经有好几天这个问题,而且我一直在试图解决这个问题。但是我一直在试图解决这个问题。

我正在使用ASP.NET MVC实体框架,我有这个类:

namespace CP.Models
{
    [Table("CP-VIP-Preview")]
    public class CP_VIP_Preview
    {
        [Key]
        [DisplayName("Occupancy Timeline")]
        [Required]
        public string occupancyTimeline { get; set; }

        public occupancyTimelineTypes occupancyTimelineType
        {
            get
            {
                return Enum.Parse(occupancyTimelineTypes, occupancyTimeline);

            }
        }
    }

    public class Homefront : DbContext
    {
        public DbSet<CP_VIP_Preview> Data { get; set; }
    }

    public enum occupancyTimelineTypes : int
    {
        TwelveMonths = 12,
        FourteenMonths = 14,
        SixteenMonths = 16,
        EighteenMonths = 18
    }

    public static class MyExtensions
    {
        public static SelectList ToSelectList(this occupancyTimelineTypes enumObj)
        {
            var values = from occupancyTimelineTypes e in Enum.GetValues(typeof(occupancyTimelineTypes))
                         select new { Id = e, Name = string.Format("{0} Months", Convert.ToInt32(e)) };
            return new SelectList(values, "Id", "Name", enumObj);
        }
    }
}

我要做的是如下,取enum occupancyTimelineTypes方法(12,14,16,18)中的值,并将它们用于下拉菜单,如下所示:

@model CP.Models.CP_VIP_Preview
@using CP.Models

@Html.DropDownListFor(model => model.occupancyTimeline,Model.occupancyTimelineType.ToSelectList());

但是我收到了这些错误:

  

最佳重载方法匹配&#39; System.Enum.Parse(System.Type,string)&#39;有一些无效的论点。

     

参数1:无法转换为'CP.Models.occupancyTimelineTypes&#39;到&#39; System.Type&#39;

     

“CP.Models.occupancyTimelineTypes&#39;是一种&#39;类型&#39;但用作变量&#39;

在我班上的这一行:

return Enum.Parse(occupancyTimelineTypes, occupancyTimeline);

我只是不知道如何解决这个问题,这几天非常令人沮丧。

0 个答案:

没有答案