[Phone] 属性のデフォルトの有効な形式は何ですか? データ テーブルの phone 列は navrchar (16) です。1112223333 のような電話番号を入力すると、「フィールドは有効な電話番号ではありません」というメッセージが表示されます。01112223333 を入力すると、「値 '11112223333' は無効です。」
また、それを上書きする方法は?私はこのようなことができることを理解していますが、これはこの場合のベストプラクティスですか?
[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>
更新 phone 列を int から navrchar に変更したときにマッピングの問題があったと思います。モデルを更新するだけでは不十分だったので、テーブル マッピングを使用して手動で値を変更する必要がありました。
エラー 2019: 指定されたメンバー マッピングが無効です。タイプ 'UserDBModel.UserProfile' のメンバー 'Phone' のタイプ 'Edm.Int32[Nullable=False,DefaultValue=]' は 'SqlServerCe.nvarchar[Nullable=False,DefaultValue=,MaxLength=16,Unicode=True' と互換性がありませんタイプ「UserDBModel.Store.UserProfile」のメンバー「Phone」の ,FixedLength=False]」。