C# 访问控制器上的枚举值

C# 访问控制器上的枚举值,c#,asp.net-mvc-4,if-statement,enums,C#,Asp.net Mvc 4,If Statement,Enums,我有一个字段状态为的枚举 public status? Status { get; set; } 这个班是 public enum status { Incomplete = 0, InReview, Live, Rejected, Suspended, Scheduled, Delisted } 在我的模型中,我使用 var listStatus = new

我有一个字段状态为的枚举

  public status? Status { get; set; }
这个班是

 public enum status
    {
        Incomplete = 0,
        InReview,
        Live,
        Rejected,
        Suspended,
        Scheduled,
        Delisted
    }
在我的模型中,我使用

var listStatus = new List<SelectListItem>();
listStatus.Add(new SelectListItem { Selected = true, Text = "Incomplete", Value = "Incomplete" });
listStatus.Add(new SelectListItem { Selected = false, Text = "Ready for Review", Value = "InReview" });

            model.Status = listStatus;
     //above are in controller to initialise z model's list
    [Display(Name = "Status")]
    public IEnumerable<SelectListItem> Status { get; set; }
    public status selectedStatus { get; set; }
问题

在提交表单时,我希望验证用户是否选择继续 我的意思是我想做点什么

if(selectedStatus = "Incomplete")
{
//my codes hre
}
问题:


如何在控制器中访问与用户选择相匹配的枚举值?

只需为未来的访问者发布对我有效的解决方案

            var  chosenStatus = model.selectedStatus;

            if (chosenStatus == status.Incomplete)
            {

            }
试试这个

在获取操作中:

var statuses = from Status s in Enum.GetValues(typeof(Status)) 
               select new { Id = (int)s, Name = s.ToString() };

ViewBag.Statuses = new SelectList(statuses, "Id", "Name", (int)Status.Live /*selected*/ );
鉴于:

@Html.DropDownListFor(model => model.StatusId, ViewBag.Statuses as IEnumerable<SelectListItem>, "Select a status" )
@Html.DropDownListFor(model => model.StatusId, ViewBag.Statuses as IEnumerable<SelectListItem>, "Select a status" )
if(model.StatusId == (int)Status.InReview)
{
   // do your work..
}