ASP. NET MVC, Jquery - загрузить анимацию или сообщение с Ajax, пока обрабатывается логин ActionResult - PullRequest
0 голосов
/ 16 января 2020

В моем методе входа в систему мне нужно получить доступ к AD компании, чтобы получить логин пользователя, но этот доступ может занять некоторое время, поэтому мне нужно показать некоторое «загрузочное» сообщение или анимацию во время обработки метода входа

Как я могу сделать это, используя jQuery с ajax?

Моя идея состоит в том, когда пользователь отправляет запрос, вызывает функцию jquery с ajax, и этот метод вызывает метод Login.

Контроллер:

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {

        ISecurityContext contextoCA = ISecurityContext.GetContext();
        contextoCA.UserAuthenticator.Logon(model.Email, model.Password);

        User ActualUser= ISecurityContext.GetContext().CurrentLoggedUser;

        IApplicationEnvironmentAuthorizer environmentAuthorizer= contextoCA.ApplicationEnvironmentAuthorizer;

        bool hasAuthorization= environmentAuthorizer.HasAnyAuthorization();


        if (Request.Browser.Browser == "InternetExplorer")
        {
            ModelState.AddModelError("", "IE is not Supported");
        }

        if (!ModelState.IsValid)
        {
            return View(model);
        }            
        if (ActualUser== null)
        {
            ModelState.AddModelError("", "User not Found.");

        }
        if (!hasAuthorization)
        {
            ModelState.AddModelError("", "No authorization profile configured for this user.");
        }
        else
        {                
                return RedirectToAction("Index", "Home");               
        }

            return View(model);
    }

Вид:

<div class="py-5">
    <div class="container">
        <div class="row">
            <div class="p-5 col-lg-8" style="margin-top:40px">
                <div class="row">
                    <div class="container h-100">
                        <div class="d-flex justify-content-center h-100">
                            <div class="user_card">
                                <div class="d-flex justify-content-center">
                                    <div class="brand_logo_container">
                                        <img src="~/Content/img/logoRveAjustada.png" class="brand_logo" alt="Logo">
                                    </div>
                                </div>
                                <div class="d-flex justify-content-center form_container">
                                    @using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
                                    {
                                        @Html.AntiForgeryToken()
                                        <h5>Efetuar Login</h5>
                                        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                                        <div class="form-group" style="padding-top: 10px;">
                                            <div class="input-group mb-4">
                                                <span class="input-group-text"><i class="fa fa-user"></i> </span>
                                                @Html.TextBoxFor(m => m.Email, new { placeholder = "Email", @class = "form-control col" })
                                                <div class="col-md-12">
                                                    @Html.ValidationMessageFor(m => m.Email, "", new { @class = "text-danger" })
                                                </div>
                                            </div>
                                            <div class="input-group mb-4">
                                                <div class="input-group">
                                                    <span class="input-group-text" style="padding-left:15px"><i class="fa fa-unlock-alt"></i> </span>
                                                    @Html.PasswordFor(m => m.Password, new { placeholder = "Senha", @class = "form-control" })
                                                    <div class="col-12">
                                                        @Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
                                                    </div>
                                                </div>
                                            </div>
                                        </div>

                                        <div class="d-flex justify-content-center mt-3 login_container">
                                            <button type="submit" value="Entrar" name="button" class="btn login_btn">Entrar</button>
                                        </div>
                                    }
                                </div>

                            </div>
                        </div>
                    </div>
                </div>

            </div>
        </div>
    </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...