【问题标题】:ASP.NET MVC Html Helper: Adding a validation in an enum ddlASP.NET MVC Html Helper:在枚举 ddl 中添加验证
【发布时间】:2019-11-26 11:57:57
【问题描述】:

我是 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>

单击提交后,它不会验证我的表单,而是继续提交。
附言尽可能地,我想使用模型验证而不是 jquery-validation。

谢谢,

【问题讨论】:

  • 使用 DropDownListFor 代替 EnumDropDownListFor

标签: c# asp.net-mvc html-helper asp.net-mvc-validation


【解决方案1】:

您应该确保包含验证库和不显眼的库

jquery.validate.js

jquery.validate.unobtrusive.js

在您的主布局视图中

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

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

归档的装饰应如下所示

请考虑为表单设置一个有效的操作网址

【讨论】:

  • 谢谢,但我想使用 ASP.NET MVC html helper 验证而不是 jquery-validation。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多