Zugang zu den QueryString / Sitzung aus einer statischen Methode?
Ich verwenden ASP.Net und eine statische Webmethode /PageMethod, um einige der asynchronen Arbeit.
Meine Frage ist, wie um auf meinen Abfragezeichenfolgen-und Session-Variablen hier?
Ich habe versucht, "HttpContext.Aktuelle" und eine Menge von Informationen hier, aber nicht meine QueryString noch meine Sitzung, und ich weiß nicht, warum.
[WebMethod(EnableSession=true)]
public static object Update(string time)
{
string timer;
string lastBidder;
string price;
//Countdown timer
DateTime dt = DateTime.Parse(time);
dt = dt.AddSeconds(-1.0);
timer = dt.ToString("HH:mm:ss");
int auctionID = 6;
if (!int.TryParse(HttpContext.Current.Request.QueryString["id"], out auctionID))
throw new Exception("Seitenaufruf ohne ID");
Business.AuctionHandling ah = new Business.AuctionHandling();
DAL.Auktion auktion = ah.GetSingleAuction(auctionID);
price = auktion.AktuellerPreis.ToString("###0.00");
//this.gvHistory.DataBind();
List<DAL.Biethistorie> his = ah.GetBidHistoryForAuction(auctionID);
if (his.Count > 0)
{
lastBidder = his[0].Benutzer.Benutzername;
//History fett
//gvHistory.Rows[0].Font.Bold = true;
//gvHistory.Rows[0].ForeColor = System.Drawing.ColorTranslator.FromHtml("#3B4D5F");
//lblHöchstesGebot.ForeColor = System.Drawing.Color.Black;
}
else
{
lastBidder = Helper.StringHelper.AuctionDeatil_NoBidder;
//lblHöchstesGebot.ForeColor = System.Drawing.Color.Red;
}
return new
{
valueTimer = timer,
valuePrice = price,
valueLastBidder = lastBidder
};
}
InformationsquelleAutor Kovu | 2009-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus Interesse, warum bist du nicht einfach nur die Informationen, die Sie benötigen, um die web-Methode, wie Sie rufen?
Ich kümmern sich nicht um den moment für unit-tests. Also du meinst den Zugriff auf die session-und query-string in javascript übergeben und in die variable?
InformationsquelleAutor Michael Ciba
Der QueryString ist in der Request-Eigenschaft.
Aber die Sitzung ist drin:
InformationsquelleAutor Yuriy Faktorovich
Ich hatte ein ähnliches problem. Ich hatte eine Reihe von statischen Methoden, die ich mit zu helfen, zu verwalten, meinen Cache und Session. Zum Glück, Sie können übergeben Sie einen Verweis auf den Cache oder Session in Ihrem moethods wie diese:
Und dann Zugriff auf Ihre Sitzung, indem Sie mit der sessn Objekt.
Sorry.. ich bin mir auch nicht sicher darüber. Sitzung ist in der Regel durch den server behandelt. Vielleicht gehören Sie in ein verstecktes Feld als JSON oder so? Das könnte ein gutes Thema paar eine neue Frage und jemand mit mehr javascript Erfahrung als ich bewältigen kann.
InformationsquelleAutor Sonny Boy
So SPÄT ANTWORTEN, ABER ANDEREN zu HELFEN, UND MARKIEREN Sie ES ALS ANTWORT ..gut u haben, veröffentlichen Sie Ihren code, wie dem Sie anrufen, die Update-Methode. coz ich bin das gleiche zu tun und im immer meine querystring und der trick für die, die Sie haben zu gehen, dass in alongwith Ihre get-oder post-Aufruf wie folgt
$.ajax({
type: "POST",
url: "" + getDirectoryPath() + getCurrentPageName() + "/SavePatientEpisodes?ApplicationInstanceID=" + querystring,
data: JSON.stringify({ PatientOne: patientOneData, PatientTwo: patientTwoData, PatientOneID: $("#tbPatient1").val(), PatientTwoID: $("#tbPatient2").val() }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
//Ersetzen Sie den div-Inhalt mit der Seite Methode zurück.
}
});
ZUGREIFEN, wie UNTEN
_
Public Shared Function SavePatientEpisodes(ByVal PatientOne Als Liste(Folge), ByVal PatientTwo Als Liste(Folge), ByVal PatientOneID As String, ByVal PatientTwoID As String) As String
Dim dd As String = HttpContext.Aktuelle.Anfrage.QueryString("ApplicationInstanceID")
zurück ""
End Function
InformationsquelleAutor Atul Chaudhary