Questo è un duplicato di How to RedirectToAction in ASP.NET MVC without losing request dataPassing informazioni tra controller in ASP.Net MVC-
Salve, sono venuto in un problema che mi sta facendo gratto la testa un po '. Fondamentalmente ho una pagina di accesso Login.aspx, che ha campi username e password, oltre a una piccola e importante casella di controllo. L'accesso viene gestito nel metodo di accesso a AccountController. Il codice attualmente è il seguente:
[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");
}
}
In sostanza, se la riga restituisce Redirect (returnUrl); spara, quindi finirà in un altro controller, OpenIDController, ed è quella situazione in cui il bool sendStoredInfo diventa importante. Ma il problema è che non ho alcun riferimento ad esso quando sono in OpenIDController. Come posso inviare questo valore?
Grazie a Jace Rhea, ho apportato le modifiche suggerite. –
perché bool sendFlag = TempData.ContainsKey ("sendFlag")? TempData ["sendFlag"]: false; genererà un'eccezione dicendo "riferimento null dell'oggetto"? – Umitk
TempData è nullo? –