[Phone]屬性的默認有效格式是什麼? 在數據表中,電話列是navrchar(16) 如果我輸入電話號碼,如1112223333,我會得到「字段不是有效的電話號碼」。 如果我輸入01112223333,我會得到「價值'11112223333'是無效的。」DataAnnotations [電話]屬性
另外,如何覆蓋它呢? 我知道我可以做這樣的事情,但這是這種情況下的最佳做法嗎?
[RegularExpression(@"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}",ErrorMessage="Invalid Phone Number!")]
相關代碼:
[Required]
[Phone]
public string Phone { get; set; }
<div class="editor-field">
@Html.EditorFor(model => model.Phone)
@Html.ValidationMessageFor(model => model.Phone)
</div>
更新 我想有一個映射問題,當我從int改爲電話列navrchar。更新模型還不夠,所以我不得不使用Table Mapping手動更改該值。
錯誤2019:指定的成員映射無效。 類型爲'UserDBModel.UserProfile'的成員'Phone' 的類型'Edm.Int32 [Nullable = False,DefaultValue =]'與SqlServerCe.nvarchar'Nullable = False, Unicode'= True,FixedLength = False]成員'Phone'的' '類型爲'UserDBModel.Store.UserProfile'。
這是一個很好的做法。如果您需要多次使用電話驗證,那麼最好創建自己的ValidationAttribute(PhoneNumberAttribute)。 – sjkm
您將數據庫中的列更改爲'nvarchar',但將'Phone'屬性留在'UserDBModel.UserProfile'中'int' –