Отправить форму электронной почты на домашней странице в другую регистрационную форму

#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 ядро)

Управление сеансом и состоянием в ASP.NET Ядро