2015-01-11 7 views

Antwort

28

Sie TempData verwenden können, um die Nachricht

in Ihrer Ansicht

@if (TempData["Success"] != null) 
{ 
<p class="alert alert-success" id="successMessage">@TempData["Success"]</p> 
} 

und in Ihrem Controller nach Erfolg

TempData["Success"] = "Added Successfully!"; 
return RedirectToAction("actionname", "controllername"); 
6

Die TempData Controller-Eigenschaft verwendet werden kann, um zu zeigen, diese Art zu erreichen von Funktionalität. Der Nachteil ist, dass der Sitzungsspeicher im Hintergrund verwendet wird. Das bedeutet, dass Sie mehr Arbeit haben müssen, damit es in einer Webfarm funktioniert, oder dass Sie zuerst Sitzungen aktivieren müssen.

Alternativ können Sie Cookies verwenden, wenn Sie nur eine kurze Nachricht transportieren müssen. Dazu müssen Sie den Cookie ordnungsgemäß sichern, um Manipulationen zu verhindern. MachineKey.Protect() kann Ihnen dabei helfen.

Ich war mit dem gleichen Problem konfrontiert, das Sie getan haben und eine Lösung für sie erstellt FlashMessage. Vielleicht könnte Ihnen das etwas Arbeit ersparen. Es ist auch auf NuGet verfügbar.

Mit FlashMessage ist einfach. Sie einfach eine Nachricht Warteschlange, bevor Sie RedirectToAction() rufen Sie wie folgt vor:

// User successfully logged in 
FlashMessage.Confirmation("You have been logged in as: {0}", user.Name); 
return RedirectToLocal(returnUrl); 

Ihrer Ansicht Sie enthalten die folgende Erklärung jeder zu machen vorher Nachrichten in der Warteschlange:

@Html.RenderFlashMessages() 
Verwandte Themen