C# 视图中的MVC 5枚举-隐藏单个元素

C# 视图中的MVC 5枚举-隐藏单个元素,c#,razor,view,enums,asp.net-mvc-5,C#,Razor,View,Enums,Asp.net Mvc 5,我有一个简单的电子邮件状态枚举 public enum EmailStatus { Current, Suspended, Cancelled, [Display(Name = "")] invalid } 如果无法解析电子邮件,则会在内部设置“无效”标志。我不希望该状态显示在编辑字段中;用户应该能够暂停或取消电子邮件,但不能将其设置为无效 将显示名称设置为“”无效-仍然显示无效。razor中是否有这种机制,或者我必须自己滚动?从编辑字段数据中排除该选项

我有一个简单的电子邮件状态枚举

public enum EmailStatus
{
    Current,
    Suspended,
    Cancelled,
    [Display(Name = "")]
    invalid
}
如果无法解析电子邮件,则会在内部设置“无效”标志。我不希望该状态显示在编辑字段中;用户应该能够暂停或取消电子邮件,但不能将其设置为无效


将显示名称设置为“”无效-仍然显示无效。razor中是否有这种机制,或者我必须自己滚动?

从编辑字段数据中排除该选项。例如:

var statuses = from EmailStatus s 
               in Enum.GetValues(typeof(EmailStatus)) 
               where s != EmailStatus.invalid
               select new { Id = s, Name = s.ToString() };
ViewBag.Statuses = new SelectList(statuses, "Id", "Name");

这是一个简洁的答案;它符合要求,但代价是失去了enum本身——我希望可能有某种形式的装饰可以用来压制这个领域。如果我这样做,我可能也只有两个枚举-一个是内部的,一个是用于显示的!