[asp.net-mvc] Come impostare il valore predefinito della stringa vuota TextBox anziché null



Answers

Per essere onesti, direi che la tua metodologia di codifica è obsoleta e imperfetta. Dovresti gestire tutte le possibilità, non è difficile. Questo è esattamente ciò che string.IsNullOrEmpty(value); è per.

Immagino che la tua logica di validazione sia qualcosa del tipo:

if (value == string.Empty) { isValid = false; } 

Quindi non gestisce i valori nulli. È necessario sostituire tale controllo in modo da verificare anche i valori nulli.

string value1 = null;
string value2 = string.Empty;

string.IsNullOrEmpty(value1); // true
string.IsNullOrEmpty(value2); // true
Question

Potrei non essere aggiornato, ma un principio a cui aderisco è di evitare il più possibile il più possibile.

Tuttavia, ciò che ho trovato è che per una vista fortemente tipizzata in cui l'utente immette le proprietà di un oggetto che voglio salvare, se alcuni campi non vengono immessi vengono assegnati come null.

Quindi quando si tenta di salvare le modifiche, la convalida non riesce.

Quindi, piuttosto che impostare ogni proprietà su una stringa vuota, come posso impostare automaticamente ogni TextBox su un modulo come predefinito su una stringa vuota anziché su null?




Ho incontrato questo problema quando ho a che fare con un vecchio servizio che richiede stringhe vuote. Ho creato un metodo di estensione:

public static string GetValueOrDefault(this string str)
        {
            return str ?? String.Empty;
        }

Quindi puoi usare questo quando vuoi assicurarti che tutte le stringhe nulle diventino vuote

yourString1.GetValueOrDefault();
yourString2.GetValueOrDefault();



Links