Pergunta

Eu uso ASP.Net e um WebMethod/PageMethod estático para fazer algum trabalho assíncrono.Minha pergunta é como acessar minhas variáveis ​​​​queryStrings e Session aqui?

Tentei "HttpContext.Current" e muitas informações estão disponíveis aqui, mas não meu QueryString nem minha sessão e não sei por quê.

 [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
        };
    }
Foi útil?

Solução

Por curiosidade, por que você não está apenas passando as informações necessárias para o método da web enquanto o chama?

Outras dicas

O QueryString está na propriedade Request.

System.Web.HttpContext.Current.Request.QueryString

Mas a Sessão está aí:

System.Web.HttpContext.Current.Session

Eu tive um problema parecido.Eu tinha vários métodos estáticos que usava para ajudar a gerenciar meu cache e minha sessão.Felizmente, você pode passar uma referência ao Cache ou à Sessão para seus métodos assim:

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

E então acesse sua sessão usando o objeto sessn.

ESTA É UMA RESPOSTA ATRASADA, MAS AJUDARÁ OUTROS E MARCÁ-LA COMO RESPOSTA. Bem, você precisa postar seu código sobre como está chamando esse método de atualização.porque estou fazendo o mesmo e estou recebendo minha string de consulta e o truque para isso é que você tem que passá-la junto com sua chamada get ou post, como segue

$ .ajax ({type:"Post", URL:"" + getDirectoryPath () + getCurrentPagename () + "/savepatientEpisodes? ApplicationInstanceId =" + QueryString, Data:JSON.stringify({PacienteOne:pacienteOneData, Paciente Dois:pacienteTwoData, PatientOneID:$("#tbPaciente1").val(), PacienteDoisID:$ ("#tbpatient2"). val ()}), contentType:"aplicativo/json;charset = utf-8 ", Datatype:"JSON", sucesso:função (msg) { // Substitui o conteúdo do div pelo método da página.} });

E ACESSE COMO ABAIXO

_ Função compartilhada pública SavePatientEpisodes(PyVal PatientOne As List(Of Episode), ByVal PatientTwo As List(Of Episode), ByVal PatientOneID As String, ByVal PatientTwoID As String) Como String Dim dd As String = HttpContext.Current.Request.QueryString("ApplicationInstanceID")

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

return "" Função de Fim

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top