Exibições parciais do ASP.Net MVC mantendo o estado do modelo?
Provavelmente essa é novamente uma pergunta para iniciantes.
Quando crio um aplicativo ASP.NET MVC2, um Controlador de conta com um Logon de ação é criado assim:
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Agora, não quero ter uma página de login, quero ter controles de login como parte de uma página maior. Então, mudei o Login.aspx para Login.ascx e estou integrando-o na minha exibição principal com Html.RenderPartial ou Html.RenderAction.
Ambos funcionam como um encanto se o login for bem-sucedido. Caso contrário, o
return View(model)
está me matando. O que eu quero é voltar à minha página principal (chamada Home / Index), mas com as informações de erro da exibição parcial.
return RedirectToAction("Index", "Home")
Obviamente não funciona.
Dicas?