Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET会话返回null_C#_Asp.net_Session_Null_Object Reference - Fatal编程技术网

C# ASP.NET会话返回null

C# ASP.NET会话返回null,c#,asp.net,session,null,object-reference,C#,Asp.net,Session,Null,Object Reference,我正在开发asp.net web应用程序(web表单),其中我使用会话存储与用户相关的数据。虽然在尝试检索会话对象时,我将数据存储在会话对象中,但会出现以下错误: Object reference not set to an instance of an object. 下面是我使用方法的类: public partial class CheckoutReview : System.Web.UI.Page, IHttpHandler, IRequiresSessionState 下面是出现错

我正在开发asp.net web应用程序(web表单),其中我使用会话存储与用户相关的数据。虽然在尝试检索会话对象时,我将数据存储在会话对象中,但会出现以下错误:

Object reference not set to an instance of an object.
下面是我使用方法的类:

public partial class CheckoutReview : System.Web.UI.Page, IHttpHandler, IRequiresSessionState
下面是出现错误的代码:

public partial class CheckoutReview : System.Web.UI.Page, IHttpHandler, IRequiresSessionState
    {
        protected void Page_Load(object sender, EventArgs e) 
        {
            if (!IsPostBack)
            {
                NVPAPICaller payPalCaller = new NVPAPICaller();
                string retMsg = "";
                string token = "";
                string PayerID = "";
                NVPCodec decoder = new NVPCodec();
                token = Session["token"].ToString(); <---

如何解决此问题?

设置会话[“令牌”]的代码在哪里?已在说明中更新因此
会话[“付款金额”]
不为空?不,不为空。我用调试器检查它。好吧,问题解决了,我犯了愚蠢的错误;)
public partial class CheckoutStart : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            NVPAPICaller payPalCaller = new NVPAPICaller();
            string retMsg = "";
            string token = "";

            if (Session["payment_amt"] != null)
            {
                string amt = Session["payment_amt"].ToString();

                bool ret = payPalCaller.ShortcutExpressCheckout(amt, ref token, ref retMsg);
                if (ret)
                {
                    Session["token"] = token;
                    Response.Redirect(retMsg);
                }
                else
                {
                    Response.Redirect("CheckoutError.aspx?" + retMsg);
                }
            }
            else
            {
                Response.Redirect("CheckoutError.aspx?ErrorCode=AmtMissing");
            }
        }
    }