Webframeworkk/ASP.NET Core/Crud Opertations

Willkommen zu diesem umfassenden Tutorial zur Implementierung von CRUD-Operationen (Create, Read, Update, Delete) in ASP.NET Core MVC. Dieser Leitfaden konzentriert sich auf den Aufbau robuster, wartbarer und effizienter Webanwendungen.


🏗️ 1. Controller: Das Herzstück der Anwendung

Controller verwalten eingehende HTTP-Anfragen, interagieren mit Services und geben die entsprechenden Views zurück.

🔍 Read (Die Index-Aktion)

Die Index-Aktion ist für das Abrufen und Anzeigen von Daten verantwortlich.

  • Aufgaben: Daten von der Service-Ebene abrufen, Sortierung/Filterung anwenden und die Daten in ein View-Modell verpacken.
  • Rückgabetyp: IActionResult (normalerweise ein ViewResult).

➕ Create (Die Create-Aktionen)

Die Create-Operation erfordert in der Regel zwei Aktionsmethoden:

  1. HttpGet Create(): Gibt die "Create"-View zurück, die das leere Formular enthält.
  2. HttpPost Create(Model model):
    • Empfängt Formulardaten über das Model Binding.
    • Validiert die Eingabe mit ModelState.IsValid.
    • Speichert die Entität über die Service-Ebene.
    • Leitet nach Erfolg zur Index-Aktion weiter (um doppelte Formularübermittlungen zu vermeiden).

🖼️ 2. Views: Gestaltung der Benutzeroberfläche

Views sind für die Präsentationslogik verantwortlich. Verwenden Sie stark typisierte Views (Strongly Typed Views) für eine bessere Wartbarkeit und IntelliSense-Unterstützung.

📋 Index-View (Read)

  • Zeigt eine Liste oder Tabelle von Elementen an.
  • Enthält oft Benutzeroberflächen für Sortierung und Suche.
  • Kann Partial Views nutzen, um den Code sauber zu halten (z. B. eine Vorlage für jede Zeile).

📝 Create-View (Create)

  • Erstellt ein Formular mithilfe von Tag Helpern (<form>, <input>, <span asp-validation-for="...">).
  • Bietet sofortiges Feedback durch Validierungsattribute.
  • Bindet an ein spezifisches Request-Modell (z. B. PersonAddRequest).

🔄 3. Fortgeschrittene Funktionen: Sortieren & Suchen

Verbessern Sie die Benutzererfahrung, indem Sie das Finden und Organisieren von Daten erleichtern.

📊 Sortierung

  • Verwenden Sie Query-String-Parameter (z. B. ?sortBy=Name&sortOrder=DESC), um die Logik auf dem Server zu steuern.
  • Übergeben Sie den aktuellen Sortierstatus via ViewBag oder ein spezielles View-Modell.
  • Erstellen Sie wiederverwendbare Komponenten (wie eine Partial View für Spaltenüberschriften) für Sortierlinks.

🔎 Suche

  • Implementieren Sie ein Suchformular mit Feldern wie searchBy (Dropdown) und searchString (Texteingabe).
  • Übermitteln Sie diese Parameter an die Index-Aktion.
  • Filtern Sie die Daten auf Service- oder Datenbankebene, um die Performance zu optimieren.

💡 4. Best Practices & Stolperfallen

✅ Die "Do's"

  • Stark typisierte Views: Bevorzugen Sie diese immer gegenüber ViewBag für Typsicherheit.
  • Trennung der Zuständigkeiten (Separation of Concerns): Halten Sie Geschäftslogik in Services, nicht in Controllern oder Views.
  • Validierung: Verwenden Sie Data Annotations ([Required], [StringLength]) und prüfen Sie ModelState.IsValid.
  • Async/Await: Verwenden Sie asynchrone Operationen für alle I/O-Aufgaben (Datenbank- oder API-Aufrufe).
  • Sicherheit: Validieren und bereinigen Sie Benutzereingaben immer und verwenden Sie DTOs (Data Transfer Objects).

❌ Die "Don'ts"

  • Komplexe Logik in Views: Vermeiden Sie if/else-Blöcke oder schwere Berechnungen in .cshtml-Dateien.
  • Hardcodierte Strings: Verwenden Sie Konstanten oder Enums für Spaltennamen und Sortieroptionen.
  • Übermäßige Nutzung von ViewBag: Es fehlt die Prüfung zur Kompilierzeit, was zu instabilem Code führt.

🛣️ 5. Routing in ASP.NET Core

Routing ordnet URLs den Controller-Aktionen zu.

🏷️ Attribut-Routing

Verwenden Sie das [Route]-Attribut für präzise Kontrolle.

  • Controller-Ebene: [Route("[controller]")] fungiert als Präfix.
  • Aktions-Ebene: [Route("[action]")] definiert den spezifischen Endpunkt.

🎫 Route-Tokens

Tokens wie [controller] und [action] ermöglichen die Erstellung dynamischer Routen, die sich automatisch aktualisieren, wenn Sie Ihre Klassen oder Methoden umbenennen.


🎓 6. Fokusbereiche für Vorstellungsgespräche

Wenn Sie sich auf ein technisches Interview vorbereiten, sollten Sie folgende Themen beherrschen:

  • MVC-Architektur: Wie die drei Komponenten interagieren.
  • Model Binding: Wie Daten von einem Formular zu einem Aktionsparameter gelangen.
  • Post-Redirect-Get-Pattern: Warum wir nach einem erfolgreichen POST-Request weiterleiten.
  • Dependency Injection: Wie Services den Controllern bereitgestellt werden.

🏁 Fazit

(Schlussabschnitt ggf. ergänzen)



Kategorien: Keine
Zuletzt aktualisiert am 24.02.2026 22:22