Razor 中的枚举下拉值需要错误

Enum Dropdown value required error in Razor

有什么方法可以使枚举的下拉列表可选吗?当表单发布时此下拉列表没有值,ModelState.IsValid 计算结果为 false 并出现此下拉列表需要值的错误。我没有在此 属性.

上明确使用 [Required] 属性
@Html.EnumDropDownListFor(m => m.People[0].Role, "Select a role", new { @class = "form-control role" })

枚举是:

public enum RoleType { Employee, Visitor, Vendor, Witness }

似乎有一种方法可以通过使用类似

的方法从 ModelState 中删除特定属性
ModelState.Remove("nameOfProperty");

此信息是在另一个 Whosebug post 上找到的 link

ModelState.IsValid does not exclude required property

不确定这是否与您的问题直接相关,但希望对您有所帮助。

属性 m.People[0].Role 在您的模型中是否可以为空。您可以将 RoleType 设置为可为空,这应该会消除验证错误。

public RoleType? Role {get;set;}