在ASP.NET Core的Razor视图中,您可以使用以下方法将枚举类型显示为复选框,并根据整数值来选中:
public enum MyEnum
{
Option1,
Option2,
Option3
}
public class MyViewModel
{
public MyEnum EnumValue { get; set; }
public int IntValue { get; set; }
}
Html.EnumDropDownListFor
方法来显示枚举类型的下拉列表,并使用Html.CheckBox
方法来显示复选框:@model MyViewModel
@Html.EnumDropDownListFor(m => m.EnumValue)
@for (int i = 0; i < Enum.GetValues(typeof(MyEnum)).Length; i++)
{
var value = (MyEnum)i;
var isChecked = Model.IntValue.HasFlag(i);
@Html.HiddenFor(m => m.IntValue)
@Html.CheckBoxFor(m => m.IntValue, new { @value = i, @checked = isChecked })
@value
}
HttpPost
方法中,您可以将整数值转换为枚举值:[HttpPost]
public IActionResult MyAction(MyViewModel model)
{
model.EnumValue = (MyEnum)model.IntValue;
// 其他逻辑代码
return View(model);
}
这样,当用户选中复选框时,整数值会相应地更新,并在提交表单时将其转换为枚举值。