Frage

Ich verwende ASP.Net und eine statische WebMethod / Pagemethod einige Async Arbeit zu tun. Meine Frage ist, wie meine querystrings und Session-Variablen hier zugreifen?

Ich habe versucht, „HttpContext.Current“ und viele Informationen finden Sie hier, aber nicht meine Abfrage-Zeichenfolge noch meine Session 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
        };
    }
War es hilfreich?

Lösung

Aus Interesse, warum sind Sie nicht nur das Bestehen der Informationen, die Sie auf der Web-Methode benötigen, wie Sie es nennen?

Andere Tipps

Die Abfrage-Zeichenfolge ist in der Anfrage-Eigenschaft.

System.Web.HttpContext.Current.Request.QueryString

Aber die Session ist da drin:

System.Web.HttpContext.Current.Session

Ich hatte ein ähnliches Problem. Ich hatte eine Reihe von statischen Methoden Ich wurde zu Hilfe bei der Verwendung verwalten meinen Cache und Session. Zum Glück kann man einen Verweis auf den Cache oder Session in Ihr moethods wie folgt übergeben:

public static void DoSomething(System.Web.SessionState sessn)

Und dann Zugriff auf Ihre Sitzung, indem Sie das sessn Objekt.

Dies ist späte Antwort sondern HELP SONSTIGES UND MARK ES ALS ANTWORT ..nun u haben Sie den Code zu schreiben, wie Sie das Update-Methode aufrufen. Coz ich das gleiche tue und im meinem Abfragezeichenfolgeflag bekommen und der Trick dafür ist, dass Sie passieren müssen, dass in alongwith Ihre get oder senden Aufruf wie folgt

$. Ajax ({                         Typ: "POST",                         url: "" + getDirectoryPath () + getCurrentPageName () + "/ SavePatientEpisodes ApplicationInstanceID =" + Abfragezeichen,?                         Daten: JSON.stringify ({PatientOne: patientOneData, PatientTwo: patientTwoData, PatientOneID: $ ( "# tbPatient1") val (), PatientTwoID:.. $ ( "# tbPatient2") val ()}),                         content: "application / json; charset = UTF-8",                         datatype: "json",                         Erfolg: function (msg) {                             // den Inhalt des div Ersetzen Sie mit der Seite Methode Rückkehr.                         }                     });

und greifen Sie wie unten

_         Öffentliche Geteilt Funktion SavePatientEpisodes (ByVal PatientOne As List (Of Folge), ByVal PatientTwo As List (Of Folge), ByVal PatientOneID As String, ByVal PatientTwoID As String) As String             Dim dd As String = HttpContext.Current.Request.QueryString ( "ApplicationInstanceID")

        Dim lang As Integer = toInt(HttpContext.Current.Session("UserID"))

return "" End Function

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top