我一直在尝试这段代码来设置EditorFor
的最小值和最大值:
<label id="LbStartYear" style="width: 200px">From Date: @Html.EditorFor(model => model.SelectedYearBegin, new { htmlAttributes = new { @min = "0", @max = "20" } })</label>
但是没有成功。从来没有设置最小值和最大值。我尝试删除
0
和20
的引号,也尝试使用和不使用@
。有任何想法吗?
最佳答案
只需在模型属性上使用Range
DataAnnotation属性。通过使用此属性,您可以限制用户输入不属于该范围的任何其他数字。
导入以下 namespace -
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
然后用
Range
属性装饰您的属性-[Range(0,20)]
public int SelectedYearBegin { get; set; }
有关范围属性的更多信息-https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.rangeattribute(v=vs.110).aspx
您可以通过在Web.config中启用客户端验证来进行验证-
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
确保链接JQuery并保持不干扰,并验证JS文件。
另外,如果您仍想为
min
设置max
和EditorFor
,则需要获得MVC 5.1或更高版本。以下代码适用于MVC 5.1及更高版本。@Html.EditorFor(model => model.SelectedYearBegin, new { htmlAttributes = new { @min = "0", @max = "20" } })
如果您不想使用MVC 5.1和更高版本,则只需使用
TextBoxFor
-@Html.TextBoxFor(model => model.SelectedYearBegin, new { type = "number", min = 0, max = 100 })
关于asp.net - EditorFor的最小值和最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34639312/