Wie man session-Wert mit javascript
Habe ich eine Klasse zum Umgang mit session-Variablen. Hier ist ein Beispiel angebracht:
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; }
}
}
}
Irgendwann Speicher ich die flightID
in:
General.Session.departFlightID = flightID;
Und an einer anderen Stelle will ich das abrufen dieser Wert mit Javascript. Ich habe schon Beispiele gesehen, hier aber Sie wird nicht funktionieren (es gibt keine Fehler, aber Sie werden zurück EMPTY
).
Jüngsten versucht:
var session = '<%= General.Session.departFlightID %>';
var session = '<%= HttpContext.Current.Session["departFlightID"] %>';
Es funktioniert, wenn ich den Wert beim laden der Seite, aber ich bin mit einem webmethod-wo ich erstellen Sie eine html-und dann senden Sie das html wieder aufgefüllt werden innerhalb eines div zu machen, ein ticket gibt. Ich brauche, um den session-Wert, aber es aktualisiert nicht.
Zu machen, mehr klar hier ist der Javascript-code:
<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;
}
}
Und hier ist das 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"]; %>';
?nope, aber lassen Sie mich überprüfen ...
bearbeitet kommentieren..
yup es hat die gleiche zurückgibt leer.
schreiben Sie über script-code in der aspx-Datei oder js-Datei ? wenn Sie schreiben es in eine js-Datei, wird es nicht funktionieren.
InformationsquelleAutor confusedMind | 2013-07-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist die gleiche Frage wie hier.
wir haben in der Regel sensible Daten in Session-Variablen, also Sie sind immer auf der server-Seite. Dennoch, wenn Sie möchten, können Sie versuchen Sie, ein HiddenField in Ihr .aspx-markup und code-behind-Sie können es . sobald der Wert eingestellt ist, können Sie ganz einfach auf den Wert zugreifen mit $("#id") Weg oder Dokument.GetElementById () - Methode.
InformationsquelleAutor R.C
Wenn Sie mvc, dann:
InformationsquelleAutor anji
WebMethods unterstützen keine Session-Variablen standardmäßig. Ihre WebMethod-Deklaration sollte wie folgt Aussehen:
InformationsquelleAutor Matthew Schaad