C# MVC注释[范围(m,n)]不阻止输入文本
我有一个具有以下字段的模型:C# MVC注释[范围(m,n)]不阻止输入文本,c#,annotations,asp.net-mvc-5,C#,Annotations,Asp.net Mvc 5,我有一个具有以下字段的模型: [Range(0, 100)] public int? Points { get; set; } 我用自动生成的代码显示字段: <div class="form-group"> @Html.LabelFor(model => model.Points, new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.Edi
[Range(0, 100)]
public int? Points { get; set; }
我用自动生成的代码显示字段:
<div class="form-group">
@Html.LabelFor(model => model.Points, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Points)
@Html.ValidationMessageFor(model => model.Points)
</div>
</div>
@LabelFor(model=>model.Points,新的{@class=“controllabel col-md-2”})
@EditorFor(model=>model.Points)
@Html.ValidationMessageFor(model=>model.Points)
如果用户输入的数字超出范围,则会收到相应的消息。此外,如果用户将字段留空,我将获得预期的行为:该字段设置为null
但是,如果用户输入的某个字符串没有解析为有效整数,则输入会愉快地接受该字符串,并将null
分配给属性Points
。对我来说,这是一个非常意外的行为
如何将输入限制为范围内的空整数或有效整数?实际上,这是预期的行为。您的模型状态将无效,并且在模型状态错误集合中将出现错误。如果您需要一个值,请将
Required
属性添加到model属性。它不是静默的-按照我的建议检查ModelState.IsValid
和ModelState.Errors
。模型绑定器尝试将文本框解析为有效的int?
My ModelState时失败。IsValid为true,并且没有错误?