Как я могу сделать телефонный номер формата, например, 0000-0000 - PullRequest
0 голосов
/ 30 января 2020

Я хочу показать пользователю номер телефона в формате 0000-0000, моя модель:

[DisplayName("Phone number")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:0000-0000}")]
[Required(ErrorMessage = "*Required")]
public string Phone{ set; get; } = string.Empty;

Вид такой:

<div class="form-group">
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "control-label col-md-4"})
 <div class="col-md-8">
 @Html.EditorFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control" } })
 @Html.ValidationMessageFor(model => model.Phone, "", new { @class = "text-danger" })
      </div>
   </div>

, но не работает, я буду признателен за вашу помощь

1 Ответ

0 голосов
/ 30 января 2020

Вы можете указать regex для нужного вам формата номера телефона:

[DisplayName("Phone number")]
[Required(ErrorMessage = "*Required")]
[RegularExpression("^\d{4}-\d{4}$", ErrorMessage = "Please enter valid phone no.")]
public string Phone{ set; get; } = string.Empty;

Это всегда будет гарантировать, что ваш номер телефона будет иметь формат 0000-0000 во время проверки.

Чтобы отформатировать телефон в нужном формате, удалите атрибут DisplayFormat из своего свойства, а затем вы можете использовать перегрузку для TextBoxFor, например:

@Html.TextBoxFor(model => model.Phone,"{0:####-####}", new { htmlAttributes = new { @class = "form-control" } })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...