Как создать многостраничную форму? - PullRequest
0 голосов
/ 07 марта 2020

Я хочу сделать форму с двумя страницами для модели класса Student. В настоящее время я пытаюсь передать данные с первой страницы в контроллер, который передаст студента в качестве модели для просмотра моей второй страницы, а затем передается в контроллер для сохранения в моей базе данных, но сохраняются только данные со второй страницы. в БД.

Страница 1

@model Student
<body>
    <div class="container1">
        <form asp-action="Page2" method="post" role="form">
            <div class=" form-group row">
                <label asp-for="FirstName" class="col-md-2 control-label"></label>
                <div class="col-md-5">
                    <input asp-for="FirstName" class="form-control" />
                </div>
            </div>

            <div class="form-group row">
                <div class="col-md-offset-2 col-md-5">
                    <input type="submit" class="btn btn-primary" value="Next" />
                </div>
            </div> 

Страница 2

@model Student
    <body>
        <div class="container1">
            <form asp-action="Submit" method="post" role="form">
                <div class=" form-group row">
                    <label asp-for="LastName" class="col-md-2 control-label"></label>
                    <div class="col-md-5">
                        <input asp-for="LastName" class="form-control" />
                    </div>
                </div>

                <div class="form-group row">
                    <div class="col-md-offset-2 col-md-5">
                        <input type="submit" class="btn btn-primary" value="Next" />
                    </div>
                </div> 

Контроллер

 [HttpPost]
        public IActionResult Page2(Reports report)
        {

            return View(report);
        }
        [HttpPost]
        public IActionResult Submit(Reports report)
        {
            _reportRepository.CreateReport(report);
            return View(report);
        }

1 Ответ

0 голосов
/ 07 марта 2020

Вам необходимо добавить поле формы для FirstName в представление для Page2, либо скрытое поле, либо (при условии, что вы не хотите его изменять) вход только для чтения.

<input asp-for="FirstName" type="hidden" />

или

<input asp-for="FirstName" type="text" readonly />

В любую отправку формы включаются только те значения, которые имеют успешное управление . Это верно для любой простой старой формы HTML, которая (после того, как ваше представление сформировано) действительно то, с чем вы имеете дело.

Если вы работаете с фоном WebForms, ViewState не существует ни в одной версии MVC Framework (Full framework или. NET Core), так что вам, как разработчику, следует сохранить эти значения в запросах.

...