Accetta virgole e punti per i moduli di input Blazor FluentValidation
Ho diversi campi InputNumber su una pagina Blazor html. In sostanza, tengono traccia del reddito in migliaia. Molti utenti preferirebbero inserire$10,000 rather than $10000 in queste forme, o anche $ 10.000. Come posso consentirlo utilizzando la sintassi Blazor FluentValidation, ovviamente assicurandomi che l'utente formatta correttamente il proprio input?
Per contesto, ecco il codice di convalida corrente per il modulo di cui sopra:
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");
}
}
Risposte
Consiglierei di creare il tuo controllo per questo. Il codice sorgente di InputNumberpuò essere visualizzato qui
Una caratteristica comune dei Input..controlli è che l'input HTML viene fornito come una stringa e deve essere convertito da un input di stringa al tipo di valore associato e di nuovo a un valore di stringa per la visualizzazione. Vedi TryParseValueFromStringeFormatValueAsString
Puoi creare una copia di InputNumber(ad esempio InputCurrency?) Copiando questo codice e riscrivendo questi due metodi in modo che l'importo venga analizzato nel modo che preferisci.