【问题标题】:Validation of Html.EditorFor() in MVC在 MVC 中验证 Html.EditorFor()
【发布时间】:2015-02-27 06:45:03
【问题描述】:

在我的模型中我使用

[Display(Name ="No Of Children")]       
public Nullable<int> NoOFChildren { get; set; } 

在我看来,我使用

<div class="col-lg-6">
    @Html.EditorFor(model => model.NoOFChildren, new { htmlAttributes = new { @class = "form-control", placeholder = "No Of Children" } })
</div>

当我运行页面时,它将显示如下图所示的文本框

我想限制这个文本框接受小于零的数字。当数字为零时,向下箭头应禁用。我该怎么做?

jQuery 验证可能是一种选择,但我不想使用它,除非没有其他选择是有价值的。是否有任何 DataAnotation 验证属性可以做到这一点,或者任何 HTML5 元素可以自动做到这一点而无需编写额外的脚本?

【问题讨论】:

  • 您可以添加[Range] 属性来显示客户端错误消息。为了隐藏显示微调器按钮,您需要 jquery 来动态修改 css,如 these answers 中所述
  • [Range] 可以显示错误信息,但我不想显示错误信息。是否有任何可用的 HTML5 元素可以为我做到这一点?
  • 您可以添加min="0" 属性 - 它不会隐藏箭头,只是防止它在单击时减小值(但我相信这在浏览器中不受很好的支持)。如果您想隐藏按钮,请参考我的第一条评论中的链接。在任何情况下,旧版浏览器都不支持 HTML5,因此您仍然应该拥有 [Range] 属性

标签: jquery asp.net-mvc html data-annotations


【解决方案1】:

您可以使用 jquery 执行此操作,也可以在模型上添加数据注释

[Display(Name ="No Of Children")]       
[Range(0, 15, ErrorMessage = " ")]
public Nullable<int> NoOFChildren { get; set; } 

这应该限制用户。
同时留下ErrorMessageblank(里面有一个空格,技术上不是空白)不会在视图上显示错误消息

更新 你可以试试这个:

 @Html.EditorFor(model => model.NoOFChildren, new { htmlAttributes = new { @class = "form-control", placeholder = "No Of Children",min="0" ,max="100",step="5" } })

这会将最小值设置为 0,最大值设置为 100,并在每次点击时递增 5。

【讨论】:

  • 我不想显示错误信息,也不想使用 [Range]。有没有其他办法?
  • 尝试更新答案。如果你愿意,你也可以使用 jquery。
猜你喜欢
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
相关资源
最近更新 更多