Ceci est un double de How to RedirectToAction in ASP.NET MVC without losing request datainformations entre les contrôleurs dans ASP.Net MVC-
Salut, je suis venu dans un problème qui me fait me gratter la tête un peu. Fondamentalement, j'ai une page de connexion Login.aspx, qui a des champs de nom d'utilisateur et mot de passe, ainsi qu'une petite case importante. La connexion est gérée dans la méthode de connexion de AccountController. Le code est actuellement comme suit:
[AcceptVerbs(HttpVerbs.Post)]
[SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings",
Justification =
"Needs to take same parameter type as Controller.Redirect()")]
public ActionResult LogOn(string userName, string password, string returnUrl,
bool sendStoredInfo)
{
if (!this.ValidateLogOn(userName, password)) {
return View();
}
this.FormsAuth.SignIn(userName, false);
if (!String.IsNullOrEmpty(returnUrl)) {
return Redirect(returnUrl);
} else {
return RedirectToAction("Index", "Home");
}
}
Fondamentalement, si la ligne de retour de redirection (returnUrl); se déclenche dans un autre contrôleur, le OpenIDController, et c'est dans cette situation que le booléen sendStoredInfo devient important. Mais le problème est que je n'ai aucune référence quand je suis dans le OpenIDController. Comment puis-je envoyer cette valeur à travers?
Merci Jace Rhea, j'ai fait les changements suggérés. –
pourquoi ce bool sendFlag = TempData.ContainsKey ("sendFlag")? TempData ["sendFlag"]: false; lancera une exception disant "objet référence null"? – Umitk
TempData est null? –