2017-07-28 6 views
0

Im bin die Entwicklung einer MVC 5 App.erhalten Sitzungsklasse Variable Jquery

Ich habe eine UserLoginModel Klasse zugewiesen Session Variable.

public class UserLoginModel 
{ 
    public long User_id { get; set; } 
    public string Email { get; set; } 
    public int Rol_id { get; set; } 
    public string Name { get; set; } 
    public string LastName { get; set; } 
} 

private const string SessionKey = "UserLogin"; 
private readonly HttpContext _httpContext; 

public void Save(UserLoginModel user) 
{ 
    _httpContext.Session[SessionKey] = user; 
} 

Ich brauche den Wert dieser Session UserLogin.User_id von jQuery zu erhalten. Ich kann

var variable = '@Session["UserLogin"]'; 

Besuchen Aber es gibt mir den Wert, dass es Klasse Datentyp:

UserLoginModel 

Wie kann ich einen bestimmten Wert wie User_id bekommen?

Dank

Antwort

1

ist mit Sitzungswertzuweisung Lassen Sie beginnen:

var variable = '@Session["UserLogin"]'; 

Von dem, was ich getestet habe, diese direkte Zuordnung zu JS String zurückgegeben vollständige Klassennamen von UserLoginModel. Um Mitglied Klassenwerte von einer gespeicherten Modellklasse in Session-Variablen zu extrahieren, müssen Sie lokale Variable deklarieren jedes Mitglieds Wert im Hinblick Seite zu halten mit gleichen Datentyp & werfen die Sitzung als Modellklassennamen wie folgt aus:

@{ 
    long user_id = 0; // local variable to hold User_id value 

    // better than using (UserLoginModel)Session["UserLogin"] which prone to NRE 
    var userLogin = Session["UserLogin"] as UserLoginModel; 

    // avoid NRE by checking against null 
    if (userLogin != null) 
    { 
     user_id = userLogin.User_id; 
    } 
} 

<script type="text/javascript"> 
    var variable = '@user_id'; // returns '1' 
</script> 

Beachten Sie, dass ViewBag, ViewData & stark typisierte Viewmodel mit @model Direktive sind mehr bevorzugte Wege über Sitzungsvariable, um Modellwerte in Ansichtsseite übergeben.

Beispiel: .NET Fiddle Demo