Я использую ASP. net Приложение MVC5, и есть одна форма, позволяющая пользователю ввести свой номер телефона. Я получаю нулевое значение в контроллере, когда я отправляю форму.
вид:
@model PhoneNumberDto
@using (Html.BeginForm("PreTransfer", "Home", FormMethod.Post))
{
<div>
<div class="form-row">
<div class="col">
<div class="input-group text-dark border-dark">
<div class="input-group-prepend">
<span class="input-group-text">+</span>
</div>
@Html.EditorFor(x => x.PhoneNumber,
new {htmlAttributes = new {@class = "form-control", @type = "number", @inputmode = "tel", @style = "color: rgb(0, 0, 0); background-color: rgb(248, 248, 248)", @placeholder = "Country code and phone number "}})
<div class="input-group-append">
<button class="btn btn-outline-dark" type="submit" value="Save" style="color: rgb(0, 0, 0); background-color: rgb(248, 248, 248);">
<i class="fa fa-angle-double-right"></i>
</button>
</div>
</div>
@Html.ValidationMessageFor(model => model.PhoneNumber, "", new {@style = "color: red"})
</div>
</div>
</div>
}
Контроллер:
[HttpGet]
public ActionResult Index()
{
var viewModel = new PhoneNumberDto();
return View(viewModel);
}
[HttpPost]
public ActionResult PreTransfer(PhoneNumberDto phoneNumber)
{
if (!ModelState.IsValid)
{
var viewModel = phoneNumber;
return View("Index", viewModel);
}
}
Модель:
public class PhoneNumberDto
{
[Required(ErrorMessage = "Number is required")]
[RegularExpression(@"^(\d{10,12})$", ErrorMessage = "Please enter a correct number")]
public string PhoneNumber { get; set; }
}