czy można zapisać listę do zmiennej sesji w Asp.net C#?Lista sklepów do sesji
Odpowiedz
Tak, można przechowywać dowolny obiekt (zakładam używasz ASP.NET z ustawieniami domyślnymi, która jest w trakcie procesu stan sesji):
Session["test"] = myList;
oddasz go z powrotem do pierwotnego typu dla używać:
var list = (List<int>)Session["test"];
// list.Add(something);
Richard zwraca uwagę, należy zachować szczególną ostrożność w przypadku korzystania z innych trybów stanu sesji (np SQL Server), które wymagają obiektów do serializacji.
Niezupełnie prawdziwe. Jeśli chcesz użyć innego magazynu sesji niż domyślny w proc, klasa będzie wymagała serializacji. Dlatego najlepiej zaznaczyć wszystkie zajęcia, które wprowadzasz w sesji jako Serializowalne od samego początku - wtedy możesz zmienić mechanizm bez konieczności edytowania kodu. – RichardOD
Ważny punkt, ale 1. 'List
@ Mehrdad- Dostaję to, co miałeś na myśli i dobrze, że masz próbkę kodu. Właśnie przeredagowałem "dowolny obiekt" w twojej odpowiedzi. – RichardOD
Tak. O której platformie piszesz? ASP.NET C#?
List<string> myList = new List<string>();
Session["var"] = myList;
Następnie, aby pobrać:
myList = (List<string>)Session["var"];
znalazłem w pliku klasy poza zakresem strony, powyższy sposób (co zawsze używany) nie działa.
znalazłem obejście w tym „kontekście” w następujący sposób:
HttpContext.Current.Session.Add("currentUser", appUser);
i
(AppUser) HttpContext.Current.Session["currentUser"]
przeciwnym razie kompilator spodziewa się ciąg kiedy wskazał obiekt na obiekt sesji.
Otrzymuję taki błąd: System.Web.HttpException: Nie można serializować stanu sesji. W trybie "StateServer" i "SQLServer" program ASP.NET serializuje obiekty stanu sesji, w wyniku czego obiekty nie podlegające serializacji lub obiekty MarshalByRef są niedozwolone. To samo ograniczenie ma zastosowanie, jeśli podobna serializacja jest wykonywana przez niestandardowy magazyn stanów sesji w trybie niestandardowym –
Spróbuj ..
List<Cat> cats = new List<Cat>
{
new Cat(){ Name = "Sylvester", Age=8 },
new Cat(){ Name = "Whiskers", Age=2 },
new Cat(){ Name = "Sasha", Age=14 }
};
Session["data"] = cats;
foreach (Cat c in cats)
System.Diagnostics.Debug.WriteLine("Cats>>" + c.Name); //DEBUGGG
YourListType ListName = (List<YourListType>)Session["SessionName"];
- 1. Lista wszystkich informacji o sesji
- 2. Zakresy sklepów IP w Redis
- 3. Podejście do sesji memcached
- 4. ExtJS czeka na załadowanie wielu sklepów
- 5. Lista jednostek do datowalnych
- 6. lista Rozpakuj do zmiennych
- 7. $ _SESSION Lista PHP
- 8. Jak przekazywać klucze poleceń do zdalnej sesji tmux, gdy SSH z lokalnej sesji tmux do sesji usuwania tmux
- 9. Użyj interfejsu API odpoczynku Magento z widokiem wielu sklepów
- 10. Sklep/lista nie przeładowuje się Sencha 1.1.1
- 11. Skąd pliki sklepów Railo utworzone przez <cflog>?
- 12. Jak czekać na załadowanie wszystkich sklepów w ExtJs?
- 13. Zrozumienie liczby ładunków i sklepów wycofanych w mikroprocesorze x86
- 14. Resetuj dane ember FixtureAdapter sklepów/modele w testach
- 15. Lista transformacji do mapy elementu -> lista (element) w scala
- 16. Nowa lista linii do tablicy
- 17. SQL: lista punktów do prostokąta
- 18. Lista powiązań do źródła danych
- 19. Lista pilotów do repozytorium git?
- 20. Lista ciągów tylko do odczytu
- 21. Lista krotki do DataFrame Conversion
- 22. Lista z listą do hierarchii
- 23. Python: konwertowanie lista do generatora
- 24. Ogólna lista do ciągu CSV
- 25. Erlang: Lista Tuple do JSON
- 26. lista R list do data.frame
- 27. Wprowadzić obiekt sesji do komponentu bean DAO zamiast do fabryki sesji?
- 28. Dostęp do sesji z szablonu TWIG
- 29. Pisanie skryptu do zamknięcia sesji ekranowej
- 30. Błąd podczas przekazywania zmiennej sesji do SQLDataSource
Proszę zobaczyć tagi. On wyraźnie wspomniał C# asp.net –