Lukas100 Ответов: 0

Как передать данные из окна модальной формы для просмотра в net core 2.0


Я должен проверить пароль пользователя перед некоторыми действиями, например, утверждением списка задач. Если пользователь вводит неверный пароль в форму (модальное окно) Мне нужно передать ошибку проверки в представление сведений, где доступна кнопка утвердить.

Я пытаюсь использовать ViewBag.IncorrectPassword = "пароль неверен. Пожалуйста, попробуйте еще раз"; но никакие данные не передаются из модальной формы в представление.

Вопрос в том, как передать сообщение проверки из действия aprove в детальное представление? View bag и ViewData на этот раз не работают. Я не хочу использовать javascript или ajax. Заранее спасибо за вашу помощь.

Что я уже пробовал:

<h4>@ViewBag.IncorrectPassword</h4>

 <!-- Button trigger modal -->
           <button type="button" class="btn btn-success" data-toggle="modal" data-target="#ApproveTask">
               Approve
           </button>

           <!-- Modal -->
           <div class="modal fade" id="ApproveTaskList" tabindex="-1" role="dialog" aria-labelledby="ApproveTaskLabel" aria-hidden="true">
               <div class="modal-dialog" role="document">
                   <div class="modal-content">
                       <div class="modal-header">

                       </div>
                       <form asp-action="ApproveTask" asp-controller="TaskList" style="display:inline;">
                           <div class="modal-body">
                               <h5 class="modal-title" id="ApproveTaskLabel">Please enter your password</h5>
                               <br />
                               <input type="Password" class="form-control" name="Password" />
                               <br />
                               <span id="password_status" class="text-danger"></span>
                           </div>
                           <div class="modal-footer">
                               <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                               <input type="hidden" asp-for="TaskListID" />
                               <input type="hidden" name="id" value="@Model.TaskListID" />
                               <span asp-validation-for="TaskListID"></span>
                               <button type="submit" class="btn btn-success" id="approvebutton">Approve</button>
                           </div>
                </form>
                   </div>
               </div>
           </div>


public async Task<IActionResult> ApproveTaskList(int id, string Password)
        {
            var mtl = await _context.MyTaskList.SingleOrDefaultAsync(m => m.MyTaskListID == id);


                        if (await _userManager.CheckPasswordAsync(await _userManager.GetUserAsync(User), Password))
                        {
                            mtl.Status = MyTaskListStatus.Approved;
                            mtl.LastModifiedDate = DateTime.Now;
                             _context.MyTaskList.Update(mtl);
                            await _context.SaveChangesAsync();
                         }
                         else
                         {
                           ViewBag.IncorrectPassword = "Password is not correct. Please try again";
                         }

            return RedirectToAction("Details", new { id = mytasklistID });

}

0 Ответов