C# 如何在页面加载中设置会话字段?

C# 如何在页面加载中设置会话字段?,c#,asp.net,C#,Asp.net,我有一个web表单,它使用两个页面,一个是主页,另一个是可以通过响应访问的页面。在我的主页上重定向,或者您可以通过了解URL导航到它。然而,自从我 int field4 = (int)(Session["field4"]); //flag to see if the source page redirected to the override page 在我的第二页的Page\u Load方法中,如果我没有通过将会话字段设置为等于前面的值从第一页到达那里,那么我会得到一个对象引用,该引用未设置

我有一个web表单,它使用两个页面,一个是主页,另一个是可以通过
响应访问的页面。在我的主页上重定向
,或者您可以通过了解URL导航到它。然而,自从我

int field4 = (int)(Session["field4"]); //flag to see if the source page redirected to the override page
在我的第二页的
Page\u Load
方法中,如果我没有通过将会话字段设置为等于前面的值从第一页到达那里,那么我会得到一个
对象引用,该引用未设置为对象的实例。
异常


有什么想法吗?

您只需要检查会话变量是否已设置(因此键返回的值不等于
null

如果未对
字段4中的值进行任何处理,则可以执行以下操作:

bool didUserArriveViaTheHomePage = (Session["field4"] != null);

如果需要该值,您可以使用prefore-to-casting检查强制转换是否可行,或者您可以使用。

您只需要检查会话变量是否已设置(因此键返回的值不等于
null

如果未对
字段4中的值进行任何处理,则可以执行以下操作:

bool didUserArriveViaTheHomePage = (Session["field4"] != null);

如果需要该值,可以使用“在强制转换之前”检查强制转换是否可行,或者使用。

您正在尝试将null值转换为int类型, 因此,首先在页面加载检查中

    if (Session["field4"]!=null )
    {
        int field4 = (int)(Session["field4"]); 
    }

您正在尝试将null值转换为int类型, 因此,首先在页面加载检查中

    if (Session["field4"]!=null )
    {
        int field4 = (int)(Session["field4"]); 
    }

始终检查
NULL
状态变量,如
ViewState、Session、Application

if(!Page.IsPostBack)
{
if(Session["field4"]!=null)
int field4 = (int)(Session["field4"]);

}

始终检查
NULL
状态变量,如
ViewState、Session、Application

if(!Page.IsPostBack)
{
if(Session["field4"]!=null)
int field4 = (int)(Session["field4"]);

}