【发布时间】: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