2016-03-01 54 views
0

我有一個簡單的狀態枚舉電子郵件MVC 5枚舉鑑於 - 隱藏單個元素

public enum EmailStatus 
{ 
    Current, 
    Suspended, 
    Cancelled, 
    [Display(Name = "")] 
    invalid 
} 

標誌內部設置如果郵件無法解析無效。我不希望在編輯字段中顯示該狀態;用戶應該能夠暫停或取消電子郵件,但不能將其設置爲無效。

將顯示名稱設置爲「」不起作用 - 仍顯示無效。在剃刀上是否有這種機制?還是我必須推出自己的?

回答

0

排除編輯欄位數據中的選項。例如:

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"); 
+0

這是一個很好的答案;它以犧牲丟失枚舉本身爲代價來滿足要求 - 我希望可能會有某種形式的裝飾可以用來抑制該領域。如果我這樣做,我可能也只有兩個枚舉 - 一個是內部的,另一個是爲了顯示目的! – SimonN