Fluent验证购物车nopcommerce中的数量

时间:2013-12-04 01:31:10

标签: validation model-view-controller nopcommerce

我需要验证购物车上的数量框。我知道它不能是“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"));
}

2 个答案:

答案 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"));
}