#forms #asp.net-core #model-view-controller #asp.net-core-mvc #asp.net-identity
#формы #asp.net-ядро #модель-представление-контроллер #asp.net-core-mvc #asp.net-identity
Вопрос:
Я хочу, чтобы на домашней странице была форма электронной почты, которая при нажатии кнопки переходит на страницу регистрации, а затем на странице регистрации поле электронной почты уже заполнено введенным адресом электронной почты. Кто-нибудь знает, как лучше всего это сделать? Я создаю веб-сайт на .net core MVC и использую identity framework.
Комментарии:
1. Здесь описано несколько вариантов: docs.microsoft.com/en-us/aspnet/core/fundamentals /…
2. Можете ли вы поделиться соответствующим кодом на домашней странице (об электронной почте и кнопке), как отобразить электронное письмо на домашней странице и после нажатия кнопки как перенаправить на страницу регистрации? Если вы можете поделиться соответствующим кодом, нам может быть проще помочь вам решить проблему.
Ответ №1:
Я хочу, чтобы на домашней странице была форма электронной почты, которая при нажатии кнопки переходит на страницу регистрации, а затем на странице регистрации поле электронной почты уже заполнено введенным адресом электронной почты.
Основываясь на вашем описании, я предполагаю, что после нажатия кнопки Регистрации на домашней странице он отправит форму (которая содержит поле электронной почты) контроллеру, а затем перенаправит на страницу регистрации. Если это так, вы можете сослаться на следующий пример кода:
Код на домашней странице:
<form asp-action="HomePage" asp-controller="Home">
<div class="form-group">
<label for="email" class="control-label">Email</label>
<input name="email" class="form-control" />
</div>
<div class="form-group">
<input type="submit" value="Register" class="btn btn-primary" />
</div>
</form>
Код в домашнем контроллере:
public IActionResult HomePage()
{
return View();
}
[HttpPost]
public IActionResult HomePage(string email)
{
//if email not null, transfer the email to next action, using TempData, Session and so on.
if (email != null)
{
TempData["email"] = email;
}
return RedirectToAction(nameof(Register),"Home");
}
public IActionResult Register()
{
//you could use the following code to check whether the tempate data is exist. then do something.
//if (TempData["email"] != null)
//{
// var value = TempData["email"];
//}
return View();
}
Код на странице регистрации: Получите электронное письмо из временных данных или сеанса.
<form asp-action="Register">
<div class="form-group">
<div class="form-group">
<label for="email" class="control-label">Email</label>
<input name="email" class="form-control" value='@TempData["email"]' />
</div>
@{
var value = TempData["email"]; //get the data from TempData or session.
}
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
Скриншот, как показано ниже:
Вот несколько связанных статей о передаче данных [View-to-Controller, Controller-to-View и Controller-to-Controller], вы можете обратиться к ним:
Передача данных в представления
Передача данных [View-to-Controller, Controller-to-View и Controller-to-Controller в ASP.NET MVC] (Это похоже на использование его в Asp.net ядро)