Une expression régulière comme ce qui suit devrait fonctionner:
\A\d+(\.\d{1,2})?\Z
Cela correspond à l'entrée comme:
2.00
25.70
04.15
2.50
525.43
423.3
52
Et, comme l'a suggéré Mike, vous pourriez utilisez ceci dans un attribut de validation de données:
[RegularExpression(@"\A\d+(\.\d{1,2})?\Z", ErrorMessage="Please enter a numeric value with up to two decimal places.")]
public Decimal SalePrice { get; set; }
Edit: En réponse à vos deux questions:
1) Ceci valide le soumettons droit et non lorsque nous perdons point de ce champ?
En supposant que tout ce que vous avez ajouté est l'attribut, alors la validation est effectuée sur submit. Techniquement, la validation se produit une fois que les paramètres de formulaire sont liés au modèle. Cependant, pour réellement faire usage de cela, vous devez vérifier le paramètre de validation de votre commande:
public ActionResult MyController(MyModel model)
{
if (ModelState.IsValid)
{
// do stuff
}
else
{
// Return view with the now-invalid model
// if you've placed error messages on the view, they will be displayed
return View(model);
}
}
Pour avoir la validation se côté client en plus de côté serveur, vous aurez besoin d'utiliser javascript. Un exemple de base de cette validation Microsoft AJAX est à Scott Gu's blog.
2) Pouvez-vous me montrer le regex où l'entrée max ne peut pas dépasser 100,00 et entrée min ne peut pas être inférieure à 1,00
Vous pourriez probablement faire en regex en quelque sorte, mais regex est pas vraiment conçu pour rien plus de correspondance de modèle. Une meilleure façon de le faire serait d'ajouter un attribut de validation de plage, en plus de votre attribut regex. Alors maintenant, votre propriété devrait ressembler à:
[RegularExpression(@"\A\d+(\.\d{1,2})?\Z", ErrorMessage="Please enter a numeric value with up to two decimal places.")]
[Range(1.00m, 100.00m)]
public Decimal SalePrice { get; set; }
Le code ci-dessus n'a pas été testé, mais l'approche générale devrait fonctionner.
Merci et bonne explication d'ailleurs. Je vais certainement essayer cela. – VoodooChild