Sto utilizzando il framework CodeFirst Entitty 5. Ho una classe che rappresenta un utente.Consenti stringhe vuote per i campi contrassegnati con PhoneAttribute o UrlAttribute
public class User
{
[Key]
public int UserId { get; set; }
[Url]
[DataType(DataType.Url)]
[Required(AllowEmptyStrings= true)]
public string WebSite { get; set; }
[Phone]
[DataType(DataType.PhoneNumber)]
[Required(AllowEmptyStrings = true)]
public string Phone { get; set; }
[Phone]
[DataType(DataType.PhoneNumber)]
[Required(AllowEmptyStrings = true)]
public string Fax { get; set; }
}
mi piace la meccanica di convalida per Phone
e Url
attributi molto, ma purtroppo convalida non riesce quando i campi contrassegnati con questi attributi sono stringhe vuote, che io in realtà voglio permettere. [Required(AllowEmptyStrings = true)]
non sembra funzionare con gli attributi Phone
o Url
. Lo stesso sembra essere applicato ad alcuni altri attributi DataAnnotations come EmailAddress
.
C'è un modo per consentire stringhe vuote per i campi contrassegnati con tali attributi?
non stavo utilizzando il modello Binder. Stavo scrivendo un importatore di dati e i dati di origine contengono email e telefoni vuoti. Credo che dovrei solo convertire stringhe vuote da sorgente a null allora. Grazie per la spiegazione! –
@ Nu-hin. Il tuo DBA ti ringrazierà in futuro se sarai in grado di ripulire ambigui valori inutili come stringhe vuote e di sostituirli con null. Null è indefinito o sconosciuto. Un numero di telefono stringa vuoto non è definito o sconosciuto. È sempre divertente lavorare su un db anni dopo e trovare un mix di stringhe vuote, vuote, stringhe di spazi bianchi e il sempre utile "NESSUN NUMERO DI TELEFONO" nel campo del numero di telefono. –
Questo sembra abbastanza inutile. Sì in * alcune * situazioni, l'assenza di un valore significa "non noto", ma "Decisamente vuoto" significa qualcosa di molto diverso da "Non noto". Quindi ci sono casi in cui una stringa vuota non è un "valore inutile". –