我需要验证购物车上的数量框。我知道它不能是“NotEmpty”,必须是一个数字。我已将整个网站修改为“Decimals”,但我需要验证该字段除了.25,.5,.75范围内的数字。我有以下算法在我自己的一个项目中完成工作,但我无法确定将其放在nopcommerce中的位置,使用Fluent验证。
public class ValNumber
{
[RegularExpression(@"^\d+(\.(25|5|75|0)0*)?$", ErrorMessage = "The value must be **.25, **.5 or **.75")]
[Required(ErrorMessageResourceType = typeof(Properties.Resources), ErrorMessageResourceName = "CannotBeBlank")]
[DataType(DataType.Currency, ErrorMessage = "Must be a number!")]
public decimal valnumber { get; set; }
}
更新
我希望是这样的,但是如何编写if语句,实际的语法。
现在我有:
if (quantity != "Need the RegEx syntax in here!")
{
warnings.Add(string.Format("Must be in the range of .25, .5 or .75"));
}
答案 0 :(得分:3)
ShoppingCartItem并不像其他一些对象那样真正使用FluentValidation。我会在Nop.Services.Orders.ShoppingCartService GetStandardWarnings()中进行验证,这也会进行其他数量验证。
答案 1 :(得分:2)
解决您的更新:
if (Regex.IsMatch(quantity, @"Your regex goes here"))
{
//do your success thing
}
else
{
warnings.Add(string.Format("Must be in the range of .25, .5 or .75"));
}