Atrybut DataAnnotations [Phone]

Jaki jest domyślny, prawidłowy format atrybutu [Telefon]? W tabeli danych kolumna telefonu to navrchar (16). Jeśli wprowadzę numer telefonu, taki jak 1112223333, pole „Otrzymuję” nie jest prawidłowym numerem telefonu. ” Jeśli wprowadzę 01112223333, otrzymam „Wartość” 11112223333 „jest nieprawidłowa”.

Ponadto, jak go zastąpić? Rozumiem, że mógłbym zrobić coś takiego, ale czy w tym przypadku jest to najlepsza praktyka?

[RegularExpression(@"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}",ErrorMessage="Invalid Phone Number!")]

Powiązany kod:

    [Required]
    [Phone]
    public string Phone { get; set; }

    <div class="editor-field">
       @Html.EditorFor(model => model.Phone)
       @Html.ValidationMessageFor(model => model.Phone)
    </div>

Aktualizacja Myślę, że pojawił się problem z mapowaniem, kiedy zmieniłem kolumnę telefonu z int na navrchar. Aktualizacja modelu nie była wystarczająca, więc musiałem zmienić wartość ręcznie za pomocą mapowania tabeli.

Błąd 2019: Określone mapowanie członków jest nieprawidłowe. Typ 'Edm.Int32 [Nullable = False, DefaultValue =]' członka 'Phone' w typie 'UserDBModel.UserProfile' nie jest zgodny z 'SqlServerCe.nvarchar [Nullable = False, DefaultValue =, MaxLength = 16, Unicode = True , FixedLength = False] 'członka' Phone 'w typie' UserDBModel.Store.UserProfile '.

questionAnswers(2)

yourAnswerToTheQuestion