JoeManJoe Ответов: 1

Загрузить страницу входа в систему ASP.NET ядро как модальное всплывающее окно с помощью помощников тегов bootstrap


Я создал Ан ASP.NET основное приложение из Visual Studio, и я могу войти в свою базу данных, используя форму входа по умолчанию.

Я пытался загрузить форму входа в систему, которая является частичной формой в виде модального всплывающего окна, используя помощник тега Bootstrap. Мне нужно показать свою страницу входа в систему в центре экрана и в виде модального всплывающего окна.

В настоящее время логин загружается из представления (LoginModal.cshtml) со следующими параметрами:
@Html.Partial("_LoginPartialForm")

LoginModal.cshtml вызывается из ссылки входа в систему в верхней строке со следующим текстом:
<li><a asp-area="" asp-controller="Account" asp-action="Login">Log in</a></li>


Это не работает для меня. Что я делаю не так?

Моя модальная форма создается следующим образом:

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

<section id="loginForm" class="modal-dialog">
    <form asp-controller="Account"
          asp-action="Login"
          asp-route-returnurl="@ViewBag.ReturnUrl"
          method="post"
          class="form-horizontal"
          role="form"
          id="loginform">


        <div asp-validation-summary="All" class="text-danger"></div>

        <div class="modal-body">
            <div class="form-group" style="margin-bottom: 5px">
                <div id="div-login-msg">
                    <div id="icon-login-msg" class="glyphicon glyphicon-chevron-right modal-title-icon"></div>
                    <span id="text-login-msg">Type your username and password.</span>
                </div>
            </div>

            <div class="form-group">
                <label asp-for="UserName" class="col-md-2 control-label"></label>
                <div class="col-md-10">
                    <input asp-for="UserName" class="form-control" />
                    <span asp-validation-for="UserName" class="text-danger"></span>
                </div>
            </div>

            <div class="form-group">
                <label asp-for="Password" class="col-md-2 control-label"></label>
                <div class="col-md-10">
                    <input asp-for="Password" class="form-control" />
                    <span asp-validation-for="Password" class="text-danger"></span>
                </div>
            </div>
        </div>

        <div class="modal-footer">
            <input type="submit" value="Log In" class="btn btn-primary" />
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>


    </form>
</section>

Sunasara Imdadhusen

Где находится код для открытия/закрытия всплывающего окна?

JoeManJoe

Это одна из моих проблем. Я знаю, что метод входа в систему в контроллере учетной записи позаботится о кнопке отправки в форме входа.
Не знаю, как подключить код для загрузки и скрытия диалогового окна.

1 Ответов

Рейтинг:
10

JoeManJoe

Хорошо. Наконец-то понял. Мне пришлось удалить модальный диалог из формы входа в частичный класс.

Кроме того, я обновил код для ссылки входа в верхнюю панель, чтобы:

<li>
            <a asp-action="ModalAction"
               asp-controller="Home"
               asp-route-id="1"
               data-target="#modal-container"
               data-toggle="modal">
                Log in
            </a>            
        </li>

и создал следующий метод в моем домашнем контроллере:
public ActionResult ModalAction(int Id)
        {
            ViewBag.Id = Id;
            return PartialView("_LoginPartialForm");
        }


LASlavtchev

Привет.
У меня та же проблема, что и у тебя. Можете ли вы предоставить мне свой код, потому что я не понимаю, что вы сделали, чтобы получить решение.
Спасибо.