我一直在尝试这段代码来设置EditorFor的最小值和最大值:

<label id="LbStartYear" style="width: 200px">From Date: @Html.EditorFor(model => model.SelectedYearBegin, new { htmlAttributes = new { @min = "0", @max = "20" } })</label>

但是没有成功。从来没有设置最小值和最大值。我尝试删除020的引号,也尝试使用和不使用@

有任何想法吗?

最佳答案

只需在模型属性上使用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设置maxEditorFor,则需要获得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/

10-11 02:10