Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC注释[范围(m,n)]不阻止输入文本_C#_Annotations_Asp.net Mvc 5 - Fatal编程技术网

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,并且没有错误?