如何在aspx中访问服务器变量?

时间:2010-12-06 12:28:19

标签: asp.net

我在Session_Start程序

中定义了一个会话变量
void Session_Start(object sender, EventArgs e)
{

<other stuff>

        string sAdmin= bAdmin.ToString();

        Session["SessionAdmin"] = sAdmin;

}

然后在我的母版页中,我想使用会话变量有条件地在列表中显示一些链接。

如何编写布尔表达式以正确访问会话变量SessionAdmin?

这就是我所拥有的:

 <div id="menu">
    <ul>
        <li><a href="/EmployeeTime.aspx">Employee Time</a></li>

        <% if (  *** a Boolean expression involving Session variable "SessionAdmin" *** ) {%>
                     <li><a href="/Employee.aspx">Employees</a></li>
                     <li><a href="/ProductLine.aspx">Product Lines</a></li>
                     <li><a href="/Task.aspx">Tasks</a></li>
                     <li><a href="/Type.aspx">Work Types</a></li>  
                     <li><a href="/Activity.aspx">Activities</a></li>
        <%} %>>  
          </ul>
   </div>

如何正确定义布尔表达式?我一直在寻找,但没有找到正确的语法。

提前致谢

1 个答案:

答案 0 :(得分:3)

您已将布尔值转换为字符串,然后将其存储在包含Object引用的Session集合中,因此要获取布尔值,您将对象转换为获取字符串,然后将字符串转换为布尔值:

<% if (Convert.ToBoolean((string)Session["SessionAdmin"])) { %>

在某些情况下,这个恰好是一个,转换器方法也可以在不首先强制转换的情况下处理对象:

<% if (Convert.ToBoolean(Session["SessionAdmin"])) { %>

如果在将布尔值存储到会话变量之前没有将布尔值转换为字符串会更容易:

Session["SessionAdmin"] = bAdmin;

然后你只需将它拆箱到布尔值:

<% if ((bool)Session["SessionAdmin"]) { %>