Sie müssen möglicherweise die Argumente beim Umleiten angeben:
%Vor%und die URL, zu der Sie weiterleiten werden, sehen jetzt etwa so aus:
/Foo/Tests?ID=123&projectName=abc
Ich weiß, das ist ein bisschen alt, aber ...
In der Vergangenheit habe ich eine "MessageArea" -Klasse als eine Eigenschaft auf meinem Basis-Controller verfügbar gemacht, von der letztendlich alle meine Controller erben. Die Eigenschaft speichert die Klasseninstanz in TempData. Die MessageArea verfügt über eine Methode zum Hinzufügen (), die eine Zeichenfolgennachricht und einen Aufzählungstyp (z. B. Erfolg, Fehler, Warnung, Information) verwendet.
Ich habe dann eine partielle, die alle Nachrichten in MessageArea mit dem passenden Stil entsprechend dem Typ der Nachricht rendert.
Ich habe eine HTMLHelper-Erweiterungsmethode RenderMessageArea () so in jeder Ansicht kann ich einfach sagen @ Html.RenderMessageArea (), die Methode und teilweise kümmert sich um Nullwerte und nichts wird ausgegeben, wenn keine Nachrichten sind.
Da in TempData gespeicherte Daten nur 1 Anfrage überstehen, ist es ideal für Fälle, in denen Ihre Aktion umgeleitet werden soll, aber eine oder mehrere Nachrichten auf der Zielseite angezeigt werden, z. ein Fehler, nicht autorisierte Seite etc ... Oder wenn Sie ein Element hinzufügen, aber dann zur Indexlistenseite zurückkehren.
Natürlich könnten Sie etwas Ähnliches implementieren, um andere Daten zu übergeben. Letztendlich würde ich sagen, dass dies eine bessere Lösung für die ursprüngliche Frage ist als die akzeptierte Antwort.
BEARBEITEN, BEISPIEL:
%Vor%Die obige Klasse kann dann verwendet werden, um Nachrichten von Ihrer UI-Ebene hinzuzufügen, die von den Controllern verwendet wird.
Fügen Sie dann eine HtmlHelper-Erweiterung wie folgt hinzu:
%Vor%Der obige Code ist nicht vollständig, es gibt verschiedene Schnickschnack, die ich weggelassen habe, aber Sie bekommen den Eindruck.
Tags und Links asp.net-mvc asp.net-mvc-3