Comment obtenir la valeur de session à l'aide de javascript
J'ai une classe de traiter avec les variables de session. Voici un exemple ci-joint:
namespace General
{
public class Session
{
public Session()
{
}
public static string UserID
{
get { return HttpContext.Current.Session["UserID"] as string ?? String.Empty; }
set { HttpContext.Current.Session["UserID"] = value; }
}
public static string departFlightID
{
get { return HttpContext.Current.Session["departFlightID"] as string ?? String.Empty; }
set { HttpContext.Current.Session["departFlightID"] = value; }
}
public static string returnFlightID
{
get { return HttpContext.Current.Session["returnFlightID"] as string ?? String.Empty; }
set { HttpContext.Current.Session["returnFlightID"] = value; }
}
}
}
Maintenant à un certain moment, j'stocker les flightID
:
General.Session.departFlightID = flightID;
Et à un autre point que je veux récupérer cette valeur à l'aide de Javascript. J'ai vu des exemples ici, mais ils ne fonctionnent pas (il n'y a pas d'erreur, mais ils seront de retour EMPTY
).
Plus récente de la tente:
var session = '<%= General.Session.departFlightID %>';
var session = '<%= HttpContext.Current.Session["departFlightID"] %>';
Il ne fonctionne pas si j'ai mis en valeur au chargement de la page, mais je suis en cours d'exécution webmethod où j'ai créer une page html et ensuite l'envoyer en html pour être rempli à l'intérieur d'un div pour faire un billet là. J'ai besoin d'obtenir la valeur de session, mais il n'est pas à jour.
Pour rendre cela plus clair, voici le code Javascript:
<script type="text/javascript">
function addTicket(flightID, flightType) {
PageMethods.addTicket(flightID, flightType, OnGetMessageSuccess);
}
function OnGetMessageSuccess(result, userContext, methodName) {
var pageUrl = document.URL;
if (pageUrl.indexOf("&ret_date=&") !== -1) {
var session = '<%= HttpContext.Current.Session["departFlightID"] %>';
alert(session);
result = result + "<a onclick=\"searchflight.abortAllAjax()\" data-index=\"6\" class=\"bookNow\" title=\"Book Now!\" href=\"#\">Book Now!</a>";
result = result + "</div> </div> </div>";
document.getElementById("detail").innerHTML = result;
}
}
Et voici le webmethod:
[System.Web.Services.WebMethod]
public static string addTicket(string flightID, string flightType)
{
//GET FLIGHT DETAILS FROM DATATABLE OR SESSION DATA TABLE
string tmpHtml = string.Empty;
tmphtml="sample";
string flightID="123123213";
General.Session.departFlightID=flightID;
return tmphtml;
}
var session = '<%= HttpContext.Current.Session["departFlightID"]; %>';
?nan mais laissez-moi vérifier ...
commentaire monté..
yup, il a fait de même les retours à vide.
vous écrivez ci-dessus le code du script dans le fichier aspx ou fichier js ? si vous écrivez dans un fichier js, il ne fonctionnera pas.
OriginalL'auteur confusedMind | 2013-07-17
Vous devez vous connecter pour publier un commentaire.
C'est la même Question que ici.
nous avons habituellement des données sensibles dans des Variables de Session, de sorte qu'ils sont toujours du côté serveur. Toujours si vous le souhaitez, vous pouvez essayer d'ajouter un HiddenField dans votre .aspx balisage et dans le code derrière vous, vous pouvez le régler . une fois que la valeur est définie, vous pouvez très facilement accéder à la valeur à l'aide de $("#id") ou d'un Document.GetElementById (), méthode.
OriginalL'auteur R.C
Si vous êtes en utilisant mvc, puis:
OriginalL'auteur anji
WebMethods ne prennent pas en charge les variables de Session par défaut. Votre déclaration WebMethod devrait ressembler à ceci:
OriginalL'auteur Matthew Schaad