client-side validation trips on DataAnnotation Range attribute

后端 未结 4 1376
北海茫月
北海茫月 2020-12-03 22:32

I have the following code in my Model class:

    [Range(1, 100)]
    public decimal Price { get; set; }

After recent upgrade (I assume) of

4条回答
  •  无人及你
    2020-12-03 23:08

    I run into this recently. I upgraded from MVC 2 to MVC 5. It seems that parameter name was changed from "minimum" and "maximum" to "min" and "max"

    If you want to fix the issue without going through the hassle of upgrading your JavaScript files, search in your solution for these two lines and replace them with the better line

    rule.ValidationParameters['minimum']
    

    replace with

    typeof(rule.ValidationParameters['minimum'])!='undefined'?rule.ValidationParameters['minimum']:rule.ValidationParameters['min']
    

    and

    rule.ValidationParameters['maximum'];
    

    with

    typeof(rule.ValidationParameters['maximum'])!='undefined'?rule.ValidationParameters['maximum']:rule.ValidationParameters['max']
    

    Or alternatively, replace "RangeValidator" function with this code

    Sys.Mvc.RangeValidator.create=function(rule){var $0=typeof(rule.ValidationParameters['minimum'])!='undefined'?rule.ValidationParameters['minimum']:rule.ValidationParameters['min'];var $1=typeof(rule.ValidationParameters['maximum'])!='undefined'?rule.ValidationParameters['maximum']:rule.ValidationParameters['max'];return Function.createDelegate(new Sys.Mvc.RangeValidator($0,$1),new Sys.Mvc.RangeValidator($0,$1).validate);}
    

提交回复
热议问题