我在html Blazor页面上有几个InputNumber字段。他们基本上追踪的是成千上万的收入。许多用户更愿意在这些表格中输入10000美元,而不是10000美元,甚至10000美元。我如何使用Blazor FluentValidation语法来实现这一点,当然要确保用户正确设置输入格式?
对于上下文,以下是上述表单的当前验证代码:
public class BusinessDataValidator : AbstractValidator<BusinessData>
{
public BusinessDataValidator()
{
RuleFor(p => p.BusinessResellingGross).NotEmpty().WithMessage("You must enter a number");
RuleFor(p => p.PavementTaxGross).NotEmpty().WithMessage("You must enter a number");
RuleFor(p => p.CustomWorkServicesGross).NotEmpty().WithMessage("You must enter a number");
}
}
我建议您为此创建自己的控件。InputNumber
的源代码可以在这里查看
Input..
控件的一个常见特性是,HTML输入以字符串形式出现,并且必须从字符串输入转换为绑定值类型,然后再转换回字符串值以进行显示。参见TryParseValueFromString
和FormatValueAsString
您可以通过复制此代码并重写这两种方法来创建InputNumber
(例如InputCurrency
?(的副本,以便以您喜欢的任何方式解析金额。