正则表达式注释不适用于ASP.NET

时间:2016-09-26 10:18:22

标签: c# asp.net

我对两种类型的字段使用正则表达式,只允许long和double值。

奇怪的是它在开始时起作用,现在它停止了工作。我的代码如下:

        [Display(Name = "Număr elemente per unitate")]
        [RegularExpression(@"^[0-9]*$", ErrorMessage = "The field only allows numbers!")]
        public long NumarUnitatiBax
        {
            get;
            set;
        }

        [Required(ErrorMessage = "The field can't be empty!")]
        [Display(Name = "Cantitate ambalaj total")]
        [RegularExpression(@"^[0-9]*([.,][0-9]{1,3})?$", ErrorMessage = "The field only allows numbers with 3 decimal numbers!")]
        [VerificaAmbalajTotal]
        public double CantitateAmbalajTotal
        {
            get;
            set;
        }

并在cshtml中:

    <div class="form-group">
        @Html.LabelFor(m => m.Produs.NumarUnitatiBax)
        @Html.TextBoxFor(m => m.Produs.NumarUnitatiBax, new { @class = "form-control" })
        @Html.ValidationMessageFor(m => m.Produs.NumarUnitatiBax)
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.Produs.CantitateAmbalajTotal)
        @Html.TextBoxFor(m => m.Produs.CantitateAmbalajTotal, new { @class = "form-control" })
        @Html.ValidationMessageFor(m => m.Produs.CantitateAmbalajTotal)
    </div>

和C#(即使我认为没关系):

                var produsViewModel = new ProdusViewModel
                {
                    Produs = produs,
                    DateFirma = baseViewModel.DateFirma,
                    Furnizor = _context.Furnizor.SingleOrDefault(c => c.Cod == produs.CodFurnizor),
                    TipUnitateAmbalare = _context.TipUnitateAmbalare.ToList()
                };

                if (!ModelState.IsValid)
                    return View("AdaugaProdus", produsViewModel);

但它没有检查它,或者我在“ErrorMessage”中覆盖的消息没有出现:

enter image description here

我可以制作自己的Annotation并且它有效,但我想知道我现在做错了什么。

正如我所说的那样,几天前就有效了。我试图找到我已经改变的东西,因为它不再工作了,但是我无法确定我为它停止工作所做的改变。

编辑:正如我在Ajit Kumar的回答中所说,我将浏览器更改为我没有用于此项目的浏览器,但它仍然无效。所以,这不是缓存问题。

0 个答案:

没有答案