Wie kann ich warf einen ASP.NET Sitzung, um wieder auf meiner Liste?

Hintergrund: ich habe zwei web-Seiten, die eine ist eine Liste der Dinge, und das andere ist das detail der Sache. Auf der Liste, der Benutzer kann filtern und Sortieren, die Ergebnisse in einer sortierten Liste. Auf die details, ich möchte, dass der Benutzer über Next-und Previous-navigation.

Ich bin mit ASP.Net Web Pages mit Razor, bearbeitet, die entweder mit WebMatrix oder Visual Studio. Der code auf der Seite Liste ist einfach. Die RefID ist ein integer, der Schlüssel identifiziert eindeutig den Eintrag:

var db = Database.Open("dbname");
...
var q = db.Query( sqlthatworks , passInVarables);
Session["WorkingList"] = q.Select( x => new { x.RefID } );

Details auf der Seite, ich muss in der Lage sein, um Zugriff auf den Session["WorkingList"] so, dass ich das Linq zur Verfügung gestellt von dieser StackOverFLow Frage zu finden Sie die nächsten und vorherigen Datensätze, die werden so etwas wie:

var workingList = (IEnumerable<dynamic>) Session["WorkingList"];
var nextRecord = workingList.SkipWhile(i => i.RefID != currentRecord).Skip(1).First();

Ich weiß, dass db.Abfrage gibt ein IEnumerable< Object>, aber ich nehme an, was wirklich wieder kommen ist ein IEnumerable< Dynamik >. Und das funktioniert, scheint aber zu kompliziert. Gibt es einen besseren Weg?

Was siehst du im debugger?
wenn ich bewegen Sie die Maus über die workingList, und klicken Sie auf das +, dann sehe ich eine Liste von RefID=...'s, im Grunde ist die Liste von Ganzzahlen, die ich erwarten, zu sehen. Ich weiß nicht, wie zu Fragen, den debugger zu tun, eine weitere Untersuchung des Objekts.
Welche Art hat der debugger ist es zu sagen?
Nachdem ich werfe es IEnumerable< Dynamik> es zeigt wql = {System.Linq.Enumerable.WhereSelectEnumerableIterator<object,<>f__AnonymousType0<object>>}. Die Sitzung selbst zeigt sich als Session = {- System.Web.HttpSessionStateWrapper}
Ich meinte, was hat es vor der Besetzung.

InformationsquelleAutor Knox | 2011-12-13

Schreibe einen Kommentar