Asp.net mvc 无法使@if子句在我的Razor视图中工作(选中复选框选择)

Asp.net mvc 无法使@if子句在我的Razor视图中工作(选中复选框选择),asp.net-mvc,razor,Asp.net Mvc,Razor,我可以在Razor视图中使用@if子句作为单选按钮来显示HTML: @if (Model.Step.RadioButton1 == Step.Enum1.Choice1) { .... } 但是,在处理复选框时: @if (Model.Step.CheckBox1 == Step.Enum2.Choice1) { .... } 我得到一个错误: 运算符“==”不能应用于“System.Collections.Generic.List”类型的操作数 我理解这个错误,只是不知道如何处理它来显示我

我可以在Razor视图中使用
@if
子句作为单选按钮来显示HTML:

@if (Model.Step.RadioButton1 == Step.Enum1.Choice1)
{
....
}
但是,在处理复选框时:

@if (Model.Step.CheckBox1 == Step.Enum2.Choice1)
{
....
}
我得到一个错误:

运算符“==”不能应用于“System.Collections.Generic.List”类型的操作数

我理解这个错误,只是不知道如何处理它来显示我在
{}
中的HTML

不确定是否有其他代码是相关的,但如果有帮助,将发布它。谢谢

复选框的代码:

 public enum Choices
    {
        [Display(Name = "Choice 1")]
        Choice1,
        ....
    }
    public class ChoicesSelectorAttribute : SelectorAttribute
    {
        public override IEnumerable<SelectListItem> GetItems()
        {
            return Selector.GetItemsFromEnum<Choices>();
        }
    }
    [Mandatory(ErrorMessage = "Please select at least one type")]
    [ChoicesSelector(BulkSelectionThreshold = 15)]
    public List<string> CheckBox1 { get; set; }
公共枚举选项
{
[显示(名称=“选择1”)]
选择1,
....
}
公共课精选选民献礼:精选献礼
{
公共覆盖IEnumerable GetItems()
{
返回选择器.GetItemsFromEnum();
}
}
[必须(ErrorMessage=“请至少选择一种类型”)]
[ChoiceSelector(BulkSelectionThreshold=15)]
公共列表复选框1{get;set;}

您可能想尝试以下方法:

@if (Model.Step.CheckBox1.Contains(Step.Enum2.Choice1))
{
....
}

我不能100%确定数据是如何根据您的业务/视图逻辑进行结构化的,但我认为这是您所追求的。

其中哪一个是通用列表?复选框1还是选项1?还是两者都有?@Rob将发布复选框的代码。谢谢!正确的变体是
@if(Model.Step.CheckBox1.Contains(“Choice1”))
非常好-很高兴您对其进行了排序:-)