У меня есть HomeController с действием Index, которое отображает представление Index.aspx.Он имеет раздел логин / пароль для входа.Когда пользователь нажимает кнопку отправки, он выполняет POST-действие для входа в систему в AccountController.
<% Html.BeginForm("Login", "Account", FormMethod.Post); %>
В этом действии он проверяет правильность имени пользователя / пароля и, если он неверен, отправляет пользователя обратно на страницу входас сообщением о том, что учетные данные были неверными.
[HttpPost]
public ActionResult Login(LoginViewModel Model, string ReturnUrl)
{
User user = MembershipService.ValidateUser(Model.UserName, Model.Password);
if (user != null)
{
//Detail removed here
FormsService.SignIn(user.ToString(), Model.RememberMe);
return Redirect(ReturnUrl);
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
// If we got this far, something failed, redisplay form
return RedirectToAction("Index", "Home"); // <-- Here is the problem. ModelState is lost.
}
Но вот проблема: ValidationSummary всегда пуст, потому что мы теряем Модель, когда мы RedirectToAction. Как отправить пользователя на действие на другом контроллере без перенаправления?