[英]Passing data from .aspx file to .ashx file using Session
實際上我正在嘗試將.aspx中的數據發送到.ashx文件。 我在.aspx中使用Session並嘗試在.ashx中獲取會話值,但它顯示異常:: Object引用未設置為對象的實例。
這是我的代碼: -
.aspx代碼
[WebMethod(enableSession:true)]
public static string SetId(string Id)
{
HttpContext.Current.Session["MId"] = Id.ToString(); Console.Write(" ");
string session = HttpContext.Current.Session["MId"].ToString(); // Here I am getting value
//string session = HttpContext.Current.Session["MId"].ToString();
//BatchReadEmails.EmailProperties session = new BatchReadEmails.EmailProperties();
//session.MailId = Id.ToString();
return "Ok";
}
我在字符串會話中獲得了價值。
.ashx代碼: -
public class ChangeLogHandler : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
HttpRequest request = context.Request;
HttpResponse response = context.Response;
string session = "";
if (context.Session["MId"] != null)
session = context.Session["MId"].ToString();
else
session = "Hello India";
}
}
在這里顯示session =“Hello India”
我的問題:-
有沒有辦法從.aspx發送數據到.ashx文件?
我檢查了很多鏈接所有正在使用如果為null但我已經檢入.aspx文件它顯示值但在.ashx文件中顯示為什么? (對於特殊情況,我們可以使用/寫條件,但我已經檢查過字符串會話有價值。
我錯過了什么? 謝謝
這些是我已經使用過的鏈接: -
在aspx中你添加了Session["MId"]
。 在ashx中你正在閱讀Session["MailId"]
。
使你使用的密鑰相同。 (即,或者MId
或MailId
,但不是兩者)。
建議你定義一個常量來定義這個值,因為它是共享的,那么你可以避免這樣的問題。
這段代碼對我有用
protected void Button1_Click(object sender, EventArgs e)
{
Session["MailId"] = "somemail@address.com";
Response.Redirect("Handler.ashx");
}
/// ashx中的代碼
public class Handler : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest (HttpContext context)
{
string sessionValue = context.Session["MailId"].ToString();
context.Response.Write(sessionValue);
}
public bool IsReusable {
get {
return false;
}
}
}
我想知道你是否從ajax調用訪問處理程序
現在它正在工作。我做了這些改變: -
代替
[WebMethod(enableSession:true)]
我放
[WebMethod(EnableSession = true)]
但兩者都是正確的方法。
我在ajax調用中包含了async: false
。 (我認為在設置會話之前它試圖閱讀它)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.