У меня есть страница UnderConstruction, которая обрабатывается MVC. Представление имеет следующий код для маршрутизации пользователя после ввода его адреса электронной почты на страницу регистрации, которая является частью области бритвы для идентификации. Намерение состоит в том, чтобы открыть страницу регистрации с ее электронной почтой, уже заполненной в поле ввода электронной почты.
<!-- route to Register Form -->
<form class="form-inline push-10" method="get">
<div class="form-group">
<label class="sr-only text-white" asp-for="Email">Email Address</label>
<input class="form-control" type="email" asp-for="Email" placeholder="Your Email..">
</div>
<div class="form-group">
<button class="btn btn-default" type="submit" asp-area="Identity" asp-page="/Account/Register" asp-page-handler="WithEmail">
<i class="fa fa-plus"></i> Register
</button>
</div>
<div class="form-group">
<a class="btn btn-default" asp-controller="Home" asp-action="Index">
<i class="fa fa-home"></i> Home
</a>
</div>
и моделью просмотра страниц
public class UnderConstructionViewModel
{
public string Email { get; set; }
}
Нажатием кнопки Регистрация послепри вводе адреса электронной почты будет получен этот URL
https://localhost:44367/Identity/Account/Register?Email=testemail@mydomain.com
. Вы попадете на страницу регистрации с адресом электронной почты, НЕ заполненным в поле ввода электронной почты.
Вот метод в register.cshtml.cs (защищенная область для идентификации)
public IActionResult OnGetWithEmail(string email)
{
return RedirectToPage("Register", new InputModel{ Email = email });
}
Проблема в том, что метод никогда не попадет в цель. Обработчик придерживается соглашения, а модель следует соглашению, поэтому я не уверен, почему метод не получает попадания.
Я также пробовал помощники asp-tag в вызове формы, но это выдает то же самое. результат.
Буду признателен за любую помощь в этом.