ASP von Page zu Page Daten übergeben

Wenn Web Entwickler Daten von einer Web Seite zur anderen übergeben möchte, stehen grundsätzlich folgende Methoden zur Verfügung

  • Session Variable
  • Querystring
  • Cookie
  • (Form Post)

Allen gemein ist, das mit geringsten Kenntnissen, vom Benutzer diese Inhalte ausgelesen und manipuliert werden können. Microsoft führt mit ASP.NET core nun eine verschlüsselte Methode ein, die in einem temporären Session Cookie bis zu 500 Bytes ablegen kann: TempData. Anwendungsfall ein Quiz das sich über mehrere Seiten erstreckt. Der Entwickler benötigt, richtige Antworten und erreichte Punkte um am Ende ein Ergebnis anzeigen zu können.

Tempdata arbeitet mit einer Key Value/Object Collection. Ein initiale Zuweisung analog einer Session Variable

   1:  TempData["tmp"] = "Hallo Welt";

Wer die Variable lesen möchte, logischerweise C# Code praktisch gleich- nur anders rum. Achtung Besonderheit! der Lesezugriff löscht den Inhalt. Die Methode TempData.Peek liest ohne zu löschen.

Es wäre nicht aspnetcore, wenn man nicht in startup.cs eine Reihe von Services per DI konfigurieren müsste. Theoretisch kann man TempData am Server irgendwohin persistieren mit passenden Provider. Hier wird der vorhanden Session State Provider hinzugefügt, der aber zusätzlich den Session Service benötigt.

   1:  services.AddMvc()
   2:     .AddSessionStateTempDataProvider();
   3:  services.AddSession();

In der Configure Methode kümmert man sich noch um die Initialisierung der Services. Dazu haben die Microsoft eigenen immer eine Extension Methode, die mit dem Use Präfix beginnt. Intern wird da das New der Service Klasse angesprungen.

   1:  app.UseSession(); //mus vor MVC sein
   2:  app.UseMvc();
Kommentare sind geschlossen