Was ist das standardmäßige, gültige Format des [Phone] -Attributs? In der Datentabelle ist die Telefonspalte navrchar (16) Wenn ich ein Telefon # wie 1112223333 gebe, bekomme ich "Feld ist keine gültige Telefonnummer." Wenn ich 01112223333 eingeben, bekomme ich "Der Wert '11112223333' ist ungültig."Das DataAnnotations [Phone] -Attribut
Auch, wie man es überschreibt? Ich verstehe, dass ich so etwas tun könnte, aber ist dies die beste Praxis in diesem Fall?
[RegularExpression(@"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}",ErrorMessage="Invalid Phone Number!")]
Verwandte Code:
[Required]
[Phone]
public string Phone { get; set; }
<div class="editor-field">
@Html.EditorFor(model => model.Phone)
@Html.ValidationMessageFor(model => model.Phone)
</div>
aktualisieren Ich denke, es ein Zuordnungsproblem war, als ich das Telefon Spalte von int geändert navrchar. Das Aktualisieren des Modells war nicht genug, also musste ich den Wert manuell mit dem Table Mapping ändern.
Fehler 2019: Die angegebene Memberzuordnung ist nicht gültig. Der Typ 'Edm.Int32 [Nullable = False, DefaultValue =]' des Mitglieds 'Phone' im Typ 'UserDBModel.UserProfile' ist nicht kompatibel mit 'SqlServerCe.nvarchar [Nullable = False, DefaultValue =, MaxLength = 16, Unicode = True, FixedLength = False] ' des Mitglieds' Phone 'im Typ' UserDBModel.Store.UserProfile '.
Dies ist eine gute Praxis. Wenn Sie die Überprüfung des Telefons mehrmals verwenden müssen, erstellen Sie besser Ihr eigenes ValidationAttribute (PhoneNumberAttribute). – sjkm
Sie haben Ihre Spalte in der DB in 'nvarchar' geändert, aber die Eigenschaft 'Phone' in 'UserDBModel.UserProfile' gelassen. 'Int' –