Ganzzahl
Das GanzzahlAttribute validiert eine Zeichenkette gegen ganze Zahlen (optional mit
Minus). Server- und clientseitig wirksam.
Ganze Zahl
Prüft eine Zeichenkette gegen ganze Zahlen (optional mit Minus).
@model GanzzahlBeispielViewModel
<form asp-area="Basis" asp-controller="Ganzzahl" asp-action="Index" method="post">
<div asp-validation-summary="All" class="text-danger"></div>
@Html.EditorFor(m => m.Menge)
@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 GanzzahlBeispielViewModel
{
[Display(Name = "Menge")]
[Ganzzahl]
public string Menge { 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 GanzzahlController : Controller
{
[HttpGet]
public IActionResult Index()
{
return this.View(new GanzzahlBeispielViewModel());
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Index(GanzzahlBeispielViewModel modell)
{
if (this.ModelState.IsValid)
{
// Gültig: Eingabe ist eine Ganzzahl -> 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 GanzzahlAttribute (FMH.Komponente.Basis.Ui.Validation) validiert eine Zeichenkette gegen ganze Zahlen (Muster ^-?[0-9]+$, optionales Minus). Es wird über das String-EditorTemplate gerendert und wirkt server- und clientseitig (data-val-ganzzahl, Adapter jquery.validate.unobtrusive.ganzzahl.js).
[Display(Name = "Menge")]
[Ganzzahl]
public string Menge { get; set; }
- Gültig:
123,-42. Ungültig:12.5,abc. - Ein leeres Feld ist gültig — für ein Pflichtfeld zusätzlich
[Required]setzen. - Für Dezimalzahlen stattdessen
[Nummer]verwenden.