【问题标题】:MVC 5 Enum in view - hide single element视图中的 MVC 5 枚举 - 隐藏单个元素
【发布时间】:2016-03-01 18:28:28
【问题描述】:

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

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

如果无法解析电子邮件,则会在内部设置标志无效。我不希望该状态显示在编辑字段中;用户应该能够暂停或取消电子邮件,但不能将其设置为无效。

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

【问题讨论】:

    标签: c# razor view enums asp.net-mvc-5


    【解决方案1】:

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

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

    【讨论】:

    • 这是一个简洁的答案;它以丢失枚举本身为代价来满足要求 - 我希望可能有某种形式的装饰可以用来抑制该领域。如果我这样做,我可能也只有两个枚举——一个是内部的,一个是用于显示的!
    猜你喜欢
    • 2015-12-13
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多