【问题标题】:Enum array with string name具有字符串名称的枚举数组
【发布时间】:2019-11-11 10:17:18
【问题描述】:

您好,我在复选框列表中有一个枚举数组(用于多选项目)。 我想为复选框标签显示一个字符串基本名称。 我无法在我的视图中显示字符串开关 代码:

    public enum ServiceArea
    {
        // [Description("Not Completed")]
        AllOver,
        North,
        south,
        Center,
        Sharon,
    }
    public class SupplayerViewModel
    {
      ....

        public ServiceArea [] serviceArea { get; set; }
        public ServiceArea  servArae { get; set; }
        public string EnumfriendlyName => servArae.GetUserEnumName();
    }
    public static class EnumfriendlyName
    {
        public static string GetUserEnumName(this ServiceArea serviceArea)
        {
            switch (serviceArea)
            {
                case ServiceArea.AllOver: return "All Over ";
                case ServiceArea.Center:return "cc ccc";
                case ServiceArea.North:return "n n n";
                case ServiceArea.Sharon:return "sh sh";
                case ServiceArea.south:return "ss s";
            }

            return "Failure!!";
        }
    }
    public class Supplayer
    {
     ...
        public  ServiceArea [] serviceArea { get; set; }

       ...
    }

我的观点:

 @foreach (var item in Enum.GetValues(typeof(ServiceArea)))
                {
                    <label>
                        <i class="fas fa-street-view"></i> @item
                        <input type="checkbox" value="@item" name="ServiceArea" />
                    </label>
                }

【问题讨论】:

  • 你正在写出枚举,你只需要调用你的方法,例如:@((ServiceArea)item).GetUserEnumName()
  • 真实且合乎逻辑,只是不知道在哪里调用它,我在尝试调用它时出错(在视图中)
  • 那么告诉我们错误是什么!
  • 在 foreach 的这一行和项目中我无权访问 GetUserEnumName
  • @((ServiceArea)item.GetUserEnumName()) =object' 不包含 'GetUserEnumName' 的定义,并且最佳扩展方法重载 'EnumfriendlyName.GetUserEnumName(ServiceArea)' 需要接收器类型'服务区'

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


【解决方案1】:

好好把握 @EnumfriendlyName.GetUserEnumName((ServiceArea)@item)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 2022-08-16
    • 2021-01-21
    • 1970-01-01
    相关资源
    最近更新 更多