如何检查ASP.NET C#中是否设置了任何 Session ,就像我们在PHP中一样
if(session_id() == '')
{
// session has NOT been started
session_start();
}
else
{
// session has been started
}
在ASP.Net C#
中if (Session["userRole"].ToString() == "2")
GridView3.Columns[7].Visible= true;
else{
GridView3.Columns[7].Visible= false;
以上代码仅检查名为 userRole 的会话。 上述PHP代码替代C#的方法是什么?
答案 0 :(得分:2)
为了检查是否设置了任何会话密钥,请尝试:
if(Session.Keys.Count > 0)
{
Console.WriteLine("Session is filled");
}
else
{
Console.WriteLine("Session is empty");
}
每个项目都是一个'密钥'在Session对象中。因此,当计数等于零时,没有设置会话密钥。这是你想要的吗?
答案 1 :(得分:1)
要检查session
集合中是否存在Session
密钥,您必须将其与null
进行比较
if (Session["userRole"] != null && Session["userRole"].ToString() == "2")
根据评论编辑,Session是Page class的属性,并且将始终存在且不会为null。
此属性提供有关当前请求的信息 会话。为请求a的每个用户维护一个Session对象 ASP.NET应用程序中的页面或文档。存储在变量中的变量 当用户从一个页面移动到另一个页面时,不会丢弃会话对象 在申请中;相反,这些变量只要持续存在就可以了 用户正在访问您应用中的网页MSDN。
答案 2 :(得分:0)
另一种解决方案使用try catch
try
{
if (Session["userRole"].ToString() == "2")
GridView3.Columns[7].Visible = true;
else
GridView3.Columns[7].Visible = false;
}
catch (Exception)
{
GridView3.Columns[7].Visible = false;
}