我使用ASP.Net和静态WebMethod / PageMethod来做一些异步工作。 我的问题是如何在这里访问我的queryStrings和Session变量?
我尝试了“HttpContext.Current”,这里有很多信息,但不是我的QueryString,也不是我的Session,我不知道为什么。
[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
};
}
答案 0 :(得分:8)
QueryString位于Request属性中。
System.Web.HttpContext.Current.Request.QueryString
但会议在那里:
System.Web.HttpContext.Current.Session
答案 1 :(得分:7)
出于兴趣,您为什么不直接将所需信息传递给Web方法?
答案 2 :(得分:0)
我有类似的问题。我使用了许多静态方法来帮助管理我的缓存和会话。幸运的是,您可以将对Cache或Session的引用传递给您的moethods,如下所示:
public static void DoSomething(System.Web.SessionState sessn)
然后使用sessn对象访问您的会话。
答案 3 :(得分:-1)
这是最后的回复,但是会帮助其他人并将其标记为答案..你必须发布你的代码,告诉你如何调用Update方法。因为我正在做同样的事情,我正在获取我的查询字符串,其中的诀窍就是你必须将其与你的get或post电话一起传递,如下所示
$。AJAX({ 类型:“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”, 成功:函数(msg){ //用页面方法的返回替换div的内容。 } });
并将其视为以下
_ 公共共享功能SavePatientEpisodes(ByVal PatientOne As List(Of Episode),ByVal PatientTwo As List(Of Episode),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"))
返回“” 结束功能