我正在使用带有数据注释的实体框架,在我的模型(myModel.cs)中我有这个字段:
[DisplayName("My object")]
[Required]
[Range(1, 10)]
public Int16 myObject { get; set; }
在视图中我有这个剃刀助手:
@Html.EditorFor(model => model.myObject , new { htmlAttributes = new { @class = "form-control", type = "number", placeholder = "Type the number of objects" } })
使用上面的代码,用户可以插入数字1000,只有在提交表单时才会返回验证错误 我想在我的视图中配置EditorFor Helper,以拒绝用户键入任何低于1或大于10的值的可能性:对于使用htmlAttributes中的min和max属性以及数据注释值的示例,但是如何使用这样做?
答案 0 :(得分:0)
如果您想阻止用户在客户端输入一些值,您应该使用 javascript 。对于你的情况你可以这样写(用html的例子):
document.getElementsByClassName('restrict-number-range')[0].oninput = function () {
var max = parseInt(this.getAttribute('data-val-range-max'));
if (parseInt(this.value) > max) {
this.value = max;
return;
}
var min = parseInt(this.getAttribute('data-val-range-min'));
if (parseInt(this.value) < min) {
this.value = min;
return;
}
}
&#13;
<input type="myObject" class="restrict-number-range" data-val-range-max='10' data-val-range-min='1'/>
&#13;
我只是从Html帮助程序生成的data
属性中获取信息。你的助手看起来像这样(不要忘记添加js):
@Html.EditorFor(model => model.myObject,
new {
htmlAttributes = new {
@class = "form-control restrict-number-range", //check class
type = "number",
placeholder = "Type the number of objects"
}})