【发布时间】:2014-11-04 07:02:38
【问题描述】:
我已经阅读了很多关于这个主题的帖子,但我仍在努力解决我的问题。我有一个带有自定义模板编辑器的 14 个属性和 5 个复杂类型的表单。客户端验证适用于所有属性和自定义模板编辑器,但下面的属性。如果我输入文本,它会删除文本框的全部内容而没有任何消息。但是,如果我输入 2.,我会收到错误消息,说它必须是一个数字。有没有人经历过这种行为?这也发生在我的其他一些表单上。
附带说明:客户端是否应该验证可为空的 int 范围?除非我添加范围验证器,否则似乎不会。谢谢你。
更新 这实际上发生在我所有的 int 上?属性
型号
[Display(Name = "Lifetime")]
public int? Life { get; set; }
查看
@using (Html.BeginForm("EditPerson", "Maintenance", FormMethod.Post, new { @class = "operation-form" }))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model => model.PersonId)
@Html.Hidden("ModifiedBy", User.Identity.Name)
<div class="form-horizontal">
@Html.ValidationSummary(false, "", new { @class = "text-danger" })
<div class="col-md-4">
<div class="row person-field">
<div class="col-md-6 field-name">
@Html.LabelFor(model => model.Life)
</div>
<div class="col-md-6">
@Html.EditorFor(model => model.Life, new { htmlAttributes = new { @class = "to-center routebox" } })
@Html.ValidationMessageFor(model => model.Life, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
【问题讨论】:
-
你是对的,你必须使用范围验证器
标签: c# asp.net-mvc validation