ASP.NET MVC Html 助手:在枚举 ddl 中添加验证

ASP.NET MVC Html Helper: Adding a validation in an enum ddl

我是 ASP.NET MVC 的新手。对于这个问题,我感到非常抱歉。

我的目标是:在枚举 ddl 上使用 ASP.NET MVC 的 Html Helper 添加验证。

型号

public enum SampleEnum { 
    Active = 1, Inactive = 2, Pending = 3
}
public class SampleClass { 
    [Required]
    public SampleEnum sampleEnum{get;set;}
}

查看

<form action="url" method="post">
    @Html.EnumDropDownListFor(m => m.sampleEnum, "-- Select Sample Enum --", new { @class = "custom-select custom-select-sm" })
    @Html.ValidationMessageFor(m=> m.sampleEnum, "", new { @class = "text-danger" })
    <input type="submit" value="Submit" /> 
</form>

单击“提交”后,它不会验证我的表单,而是继续提交。
P.S。我希望尽可能使用模型验证而不是 jquery-验证。

谢谢,

您应该确保包含验证库和非侵入式库

jquery.validate.js

jquery.validate.unobtrusive.js

在您的主布局视图中

如果您没有这些文件,那么您可以从 nuget 安装它们

更新 : 如果您只需要使用服务器端验证,那么您只需将必填字段的数据注释从 [Required] 替换为 [Range(1, int.MaxValue, ErrorMessage = "This is required")] 这是因为如果用户没有 select 下拉列表的任何选项,@Html.EnumDropDownListFor 将始终发送 0,并且该值将被视为有效。 检查这个 answer

提交的装饰应如下所示

请考虑为表单添加一个有效的操作 url