.
Anmeldung | Registrieren | Hilfe
in Suchen

Handhabung von null-Werten im Viewmodell

Letzter Beitrag 28. Mrz 2015 13:18 von Volker. 0 Antworten.
Seite 1 von 1 (1 Treffer)
Beiträge sortieren: Zurück Weiter
  • 28. Mrz 2015 13:18

    • Volker
    • Nicht gereiht
    • Registriert am 28. Mrz 2015
    • Beiträge 1
    • Punkte 5

    Handhabung von null-Werten im Viewmodell

    Hallo,

    zuerst einmal: Ich bin noch recht neu in Sachen ASP MVC Programmierung und hoffe hier auf Hilfe.
    Ich habe ein kleines Projekt in dem ich eine bestehende MS-SQL Datenbank anspreche. Dazu gibt es bereits ein Datenbankmodell. Dieses habe ich als DLL in mein Projekt eingebunden.
    Für die Anzeige und Bearbeitung der Daten verwende ich ein Viewmodel.

    hier ein Beispiel:

    // Viewmodel:
    public class AddressViewmodel
    {
        public int Id { get; set; }
        public string Vorname { get; set; }
        [Required]
        public string Nachname { get; set; }
        [Required]
        public string Email { get; set; }
        ...
    
    // Action-Method für Get
    [HttpGet]
    public Edit(in? id)
    {
       // suche in SQL und gebe dbAddress zurück
       // ...
    
       // fülle     Viewmodell mit daten aus SQL
       address.Id = dbAddress.Id;
       address.Vorname = dbAddress.Firstname;
       address.Nachname = dbAddress.Lastname;
       address.Email = dbAddress.Email;
    
       View("Edit", address);  // editformular aufrufen
    }
    
    // Action-Methode für Post:
    
    public Edit(AddressViewmodel address)
    
    {
       // ... suche in der Datenbank und erhalte dbAddress zurück
       //...
       // Daten aus Viewmodel dem Datenmodell zuweisen
       dbAddress.Firstname = address.Vorname;
       dbAddress.Lastname = address.Nachname;
       dbAddress.Email= address.Email;
    
       dbAddress.Save(); // und sichern
    }


    das funktioniert auch, soweit alle Datenfelder ausgefüllt wurden. Lässt man allerdings den Vornamen aus (der Wert ist Optional), hat "Vorname" aus dem Viewmodell den Wert "null" und man erhält beim Sichern eine Fehlermeldung.
    Die Feld in der SQL-Datenbank lässt nämlich keine null-Werte zu.

    Was also tun. Ich könnte natürlich folgendes Konstrukt verwenden:
    dbAddress.Firstname = address.Vorname != null ? address.Vorname : "";

    Aber spätestens, wenn man zig Felder so prüfen muss, verliert man schnell die Übersicht und vergisst eines.
    Fein wäre eine DataAnnotation die besagt: für den Wert null gebe einen Leerstring zurück. (Gibt es sowas?)

    Bin für jede Hilfe dankbar.
    -- 
    Gruß
    Volker
    Abgelegt unter: , ,
    • IP-Adresse ist Registriert
Seite 1 von 1 (1 Treffer)

Regeln | Impressum