In den meisten Aktionen in meinem Controller muss ich überprüfen, ob eine Bedingung erfüllt wurde, und wenn nicht den Benutzer auf eine andere Aktion in der gleichen Controller umleiten, so habe ich versucht:Umleiten zu Aktion von innerhalb einer Methode
public ActionResult Transactions()
{
GrossGalsConfermation();
return View();
}
public void GrossGalsConfermation()
{
if (Session["HasConfirmed"] == null && TerminalUserData.IsGrossGallonTerminal)
{
RedirectToAction("ConversionFactors");
}
}
aber selbst wenn die if
Aussage wahr ist, wird die RedirectToAction
nicht ausgeführt. Ich habe einen Debug in VS gemacht und kann es von der Action
auf die Method
springen, bewerten die IF
Anweisung und gehen Sie in es um die RedirectToAction
laufen, aber dann springt es direkt zurück auf die aufrufende Acation
und Rückkehr ist es Sicht. Wie kann ich die Umleitung erzwingen? Suche in der Zeile finde ich ähnliche Probleme und die Lösung war, von void
zu ActionResult
zu ändern, aber dann muss ich einen Fallback Action
zurückgeben, was nicht getan werden kann, da diese Method
wird von Dutzenden von Ansichten aufgerufen werden.
Was passiert, wenn Sie die 'if' nehmen passiert? Leitet es die Aktion um? – IanAuld
@IanAuld Es wird nicht - Sie müssen * das RedirectToRouteResult zurückgeben, wenn der Browser umgeleitet werden soll. –
Es sieht aus wie Sie Helper-Methode anstelle von Action-Filter verwenden ... –