2012-12-19 3 views
6

klicken back TempData bin mit zusätzlichen Nachrichten zu übergeben eine Benachrichtigung accross Anfragen zeigen:MVC3 TempData liegt vor, wenn Taste

public ActionResult Address() 
      TempData["NotificationType"] = "error"; 
      TempData["NotificationMessage"] = "There was an error updating the address."; 
      return RedirectToAction("Index", "Home"); 
    } 

    public ActionResult Index() 
    {   

     if (TempData["NotificationType"] != null && TempData["NotificationMessage"] != null) 
     { 
      model.NotificationMessage = TempData["NotificationMessage"].ToString(); 
      model.NotificationType = TempData["NotificationType"].ToString(); 
     } 
    return View(); 
    } 

Übersicht:

<div id="NotificationType" data-notification_type="@Model.NotificationType"/> 
<div id="NotificationMessage" data-notification_message="@Model.NotificationMessage" /> 

<script type=text/javascript> 
if($('#NotificationType').data('notification_type') == 'error'){ 
    Notify('error', "Error!", $('#NotificationMessage').data('notification_message')); 
    } 
</script> 

ich dann die Fehlermeldung anzeigen in die Aussicht und es funktioniert super. Mein Problem kommt danach, wenn ich einen anderen Link klicke und dann den Zurück-Knopf im Browser drücke, wird die Benachrichtigung wieder angezeigt.

Gibt es eine Möglichkeit, zu verhindern, dass die Benachrichtigung erneut angezeigt wird?

EDIT: Sieht aus wie es ist, weil es die Indexansicht zwischenspeichert, da es einen Haltepunkt in der Aktion nicht trifft, wenn ich den Zurückknopf drücke.

Antwort

11

dieses Fest durch Caching auf der Indexansicht zu verhindern:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")] 
public ActionResult Index() 
+0

Nach Stunden des Suchens endlich die richtige Lösung gefunden. Danke Kumpel. –