2009-02-25 25 views
3

Mit Blick auf die MVC Quelle heute:ASP .Net & Session

public class MvcHandler: IHttpHandler, IRequiresSessionState

warum es Session brauchen? Will MVC nicht etwas RESTful machen?

Ich weiß, der Grund für die Verwendung von Sitzungsstatus in MVC ist für die Übertragung einiger Daten (kann nicht den Begriff erinnern, aber Sitzungszustand kann durch andere Medien ersetzt werden). Ich denke, meine eigentliche Frage ist:

Warum kann ich nicht eine MVC-App schreiben und angeben und haben die Option, den Sitzungsstatus vollständig auszuschalten?

Antwort

3

Es erfordert es wegen TempData. TempData ist wie ViewData, außer dass es einmal zur Ansicht und zurück geht. Um dies zu erreichen, benötigt es einen Cookie.

Es gibt eine Möglichkeit, um es zu umgehen, indem Sie ein Dummy-Objekt erstellen, ich kann mich einfach nicht erinnern, wie.

Gefunden, dank Kigg.

public class EmptyTempDataProvider : ITempDataProvider 
{ 
    public IDictionary<string, object> LoadTempData(ControllerContext controllerContext) 
    { 
     return new Dictionary<string, object>(); 
    } 

    public void SaveTempData(ControllerContext controllerContext, IDictionary<string, object> values) 
    { 
    } 
} 

Dann müssen Sie einen Basiscontroller erstellen und davon ableiten, wenn Sie Ihre anderen Controller erstellen.

protected BaseController() 
{ 
    TempDataProvider = new EmptyTempDataProvider(); 
} 

Dies sollte Ihnen ermöglichen, den Sitzungsstatus zu deaktivieren.