如何在asp.net mvc 5中只允许在editorforfield中输入正数

时间:2017-08-25 18:15:57

标签: c# asp.net-mvc asp.net-mvc-5

我希望字段允许正数。我尝试了以下尝试:

模型

[Required]
[GreaterThanZero(ErrorMessage = "Only positive number allowed.")]
public int PositiveNumber { get; set; }

查看

  <div class="form-group">
            @Html.LabelFor(model => model.PositiveNumber, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(m => m.PositiveNumber)
                @Html.ValidationMessageFor(model => model.PositiveNumber, "*", new { @class = "text-danger" })
            </div>
        </div>

自定义验证

  public class GreaterThanZero : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            var x = (int)value;
            return x > 0;
        }
    }

问题:以上解决方案运行正常。我想知道有没有简单的方法来实现它。通过使用一些内置框架注释/帮助器甚至FoolProof

请注意:使用editorfor只允许数字(很聪明),但仅仅是正数。

2 个答案:

答案 0 :(得分:8)

这只接受正数。

System.ComponentModel.DataAnnotations
 [Range(1, int.MaxValue, ErrorMessage = "Only positive number allowed")]

答案 1 :(得分:0)

这应该是正确的。

[Range(0, int.MaxValue, ErrorMessage = "Only positive number allowed.")]