在一个已经编译的项目里要添加一些小功能
直接用代码前置的写法,就是程序和页面一起写在.aspx中。现在要先读出原来程序中有什么Session
用<%@ Page Language="C#"%>
<script runat="server">
foreach (string strSee in Session)
{
Response.Write(strSee + "=" + Session[strSee] + "<BR/>");
}
</script>程序报错!“/”应用程序中的服务器错误。
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。编译器错误消息: CS1519: 类、结构或接口成员声明中的标记“foreach”无效源错误:
行 1:  <%@ Page Language="C#"%>
行 2:  <script runat="server">
行 3:   foreach (string strSee in Session.Keys)
行 4:   {
行 5:   Response.Write(strSee + "=" + Session[strSee] + "<BR/>");
请问,怎么读取Session。还有,如果用编译的话,那么怎么加入本来的项目里。

解决方案 »

  1.   

    Session[strSee]  这样直接取值 是obj类型。。转换成string才可以用
      

  2.   

    就算是发布的项目,至少也应该有个Inherits吧?
      

  3.   

    应该是在方法内输出。如Page_Load()
      

  4.   

    你加了<script runat="server">代码块就必须放在方法里
    否则要这么写
    <%
    foreach (string strSee in Session.Keys)
    {
           Response.Write(strSee + "=" + Session[strSee] + "<BR/>");
    }
    %>
      

  5.   

     <%= Session[名称]%>
      

  6.   

    你把<script runat="server"> 中的runat 去掉试试
      

  7.   

    #4正解。<script runat="server">只支持方法。<%...%>可以声明非方法的代码