Логин клиента asp.net модель ошибки MVC, Как вернуть модель ошибки в индекс - PullRequest
0 голосов
/ 24 сентября 2018

Я использую идентичность в проекте mvc для аутентификации, у меня есть два типа пользователей, первый - это пользователь Admin имеет страницу входа в систему, а второй - пользователь клиента. Форма входа пользователя клиента, используемая в макете в модели, которую я сделал.частичное представление для входа в систему клиента и препятствует его в макете, когда я нажимаю кнопку «Отправить» и доза данных не существует (нет пользователя), он должен вернуть сообщение об ошибке модели для пользователя, такого как

ModelState.AddModelError("", "Invalid login attempt.");
            return PartialView("~/Views/Account/_LoginPartial.cshtml", model);

проблемаэто вернуть меня в частичное представление, которое не имеет макета

Как я могу вернуть ошибку модели на страницу, такую ​​как Home / Index и просмотреть ошибку модели

это действие, которое я публикую

[HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> ClientLogin(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return PartialView("~/Views/Account/_LoginPartial.cshtml", model);
        }
        var user = await UserManager.FindByNameAsync(model.Email);
        if (user == null)
        {
            ModelState.AddModelError("", "Invalid login attempt.");
            return PartialView("~/Views/Account/_LoginPartial.cshtml", model);
            //return PartialView("",model);
        }
        if (!await UserManager.IsEmailConfirmedAsync(user.Id))
        {
            ModelState.AddModelError("", "You need to confirm your email.");
            return View(model);
        }
        var lang = RouteData.Values["lang"].ToString().ToLower();
        if (string.IsNullOrEmpty(returnUrl))
            returnUrl = "/" + lang + "/ControlPanel/Home";
        // This doesn't count login failures towards account lockout
        // To enable password failures to trigger account lockout, change to shouldLockout: true
        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

        switch (result)
        {
            case SignInStatus.Success:
                return RedirectToLocal(returnUrl);
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return View(model);
        }
    }
...