Nummer
Das NummerAttribute validiert eine Zeichenkette gegen Dezimalzahlen (Punkt oder Komma
als Dezimaltrenner). Server- und clientseitig wirksam.
Dezimalzahl
Prüft eine Zeichenkette gegen Dezimalzahlen (Punkt oder Komma).
@model NummerBeispielViewModel
<form asp-area="Basis" asp-controller="Nummer" asp-action="Index" method="post">
<div asp-validation-summary="All" class="text-danger"></div>
@Html.EditorFor(m => m.Betrag)
@Html.Fmh(Fmh.Button()
.Text("Absenden")
.Size(ButtonSize.Sm)
.Attributes(new { @class = "mt-2" }))
</form>
using System.ComponentModel.DataAnnotations;
using FMH.Komponente.Basis.Ui.Validation;
namespace FMH.Komponente.WebUI.Areas.Basis.Models
{
public class NummerBeispielViewModel
{
[Display(Name = "Betrag")]
[Nummer]
public string Betrag { get; set; }
}
}
using FMH.Komponente.Basis.Erweiterungen;
using FMH.Komponente.Basis.Ui.Feedback.Alert;
using FMH.Komponente.WebUI.Areas.Basis.Models;
using Microsoft.AspNetCore.Mvc;
namespace FMH.Komponente.WebUI.Areas.Basis.Controllers.Beispiele
{
[Area("Basis")]
public class NummerController : Controller
{
[HttpGet]
public IActionResult Index()
{
return this.View(new NummerBeispielViewModel());
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Index(NummerBeispielViewModel modell)
{
if (this.ModelState.IsValid)
{
// Gültig: Eingabe ist eine Dezimalzahl -> PRG-Redirect auf die GET-Action.
this.AddAlert("Formular ist gültig – Validierung erfolgreich.", AlertType.Success, autoHide: true);
return this.RedirectToAction(nameof(this.Index));
}
// Ungültig: dieselbe View mit den Validierungsfehlern erneut anzeigen.
return this.View(modell);
}
}
}
Darstellung
Das NummerAttribute (FMH.Komponente.Basis.Ui.Validation) validiert eine Zeichenkette gegen Dezimalzahlen (Muster ^-?[0-9]+([\.\,][0-9]+)?$, Punkt oder Komma als Dezimaltrenner). Es wird über das String-EditorTemplate gerendert und wirkt server- und clientseitig (data-val-nummer, Adapter jquery.validate.unobtrusive.nummer.js).
[Display(Name = "Betrag")]
[Nummer]
public string Betrag { get; set; }
- Gültig:
123,12.5,12,5,-42,7. Ungültig:12.(Trenner ohne Nachkommastellen),abc. - Ein leeres Feld ist gültig — für ein Pflichtfeld zusätzlich
[Required]setzen. - Für ganze Zahlen stattdessen
[Ganzzahl]verwenden.