前台代码
<a href='<%=str %>' runat="server" …………
后台代码: protected void Page_Load(object sender, EventArgs e)
    {
        string str = string.Empty;
        if (Session["Power"].ToString() != "0" && Session["Power"].ToString() != "2")
        {
            DBUtility.CRCommon.Show(this, "权限不够!", "right.aspx");
            str = "right.aspx";
        }
        else 
        {
            str = "addfileinfo.aspx";
        }
          }判断没起作用,请教

解决方案 »

  1.   

    responsr.write(Session["Power"].ToString());看看什么值
      

  2.   

    string str = string.Empty;
    你这里声明的是局部变量。改成str = string.Empty
      

  3.   

    你这样写
    public string GetUrl(){
    if (Session["Power"].ToString() != "0" && Session["Power"].ToString() != "2")
            {
                DBUtility.CRCommon.Show(this, "权限不够!", "right.aspx");
                str = "right.aspx";
            }
            else 
            {
                str = "addfileinfo.aspx";
            }
    }
    <a href='<%= GetUrl()%>'
      

  4.   

    用个div包含这个<a>
    div加上runat="server" 设置id
    在后台判断后控制这个div的visible属性为true或者false
      

  5.   

    好吧推荐你一个最简答的方法
    <asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
    protected void Page_Load(object sender, EventArgs e)
        {
            string str = string.Empty;
            if (Session["Power"].ToString() != "0" && Session["Power"].ToString() != "2")
            {
                DBUtility.CRCommon.Show(this, "权限不够!", "right.aspx");
                str = "right.aspx";
            }
            else 
            {
                str = "addfileinfo.aspx";
            }
          this.HyperLink1.NavigateUrl = str;
        }
      

  6.   

    变量要声明在方法外部
    不过既然都用了服务器标记了 那就这样吧 protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Power"].ToString() != "0" && Session["Power"].ToString() != "2")
            {
                DBUtility.CRCommon.Show(this, "权限不够!", "right.aspx");
                Link.HRef = "right.aspx";
            }
            else 
            {
                Link.HRef = "addfileinfo.aspx";
            }
        }<a runat="server" id="Link">test</a>
      

  7.   

    我这个是一张图片,不能用div
      

  8.   

    string str = string.Empty;
    改成:
    public string str = string.Empty;
    试试
      

  9.   

    img+runat=server ++++id,在后台调用
      

  10.   

    前台a标签中将runat="server"去掉,里面使用的str应该作为全局变量,并在Page_Load中第一次加载时赋值
    <a href='<%=str%>'  …………/>public string str = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
       if(!IsPostBack)
       {
            if (Session["Power"].ToString() != "0" && Session["Power"].ToString() != "2")
            {
                DBUtility.CRCommon.Show(this, "权限不够!", "right.aspx");
                str = "right.aspx";
            }
            else 
            {
                str = "addfileinfo.aspx";
            }
        }
    }
      

  11.   

    两种方法吧, 一种是使用服务器控件<asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
    protected void Page_Load(object sender, EventArgs e)
        {
            string str = string.Empty;
            if (Session["Power"].ToString() != "0" && Session["Power"].ToString() != "2")
            {
                DBUtility.CRCommon.Show(this, "权限不够!", "right.aspx");
                str = "right.aspx";
            }
            else 
            {
                str = "addfileinfo.aspx";
            }
          this.HyperLink1.NavigateUrl = str;
        }
    另外一种方法是定义全局变量<a href='<%=str%>'  …………/>public string str = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
       if(!IsPostBack)
       {
            if (Session["Power"].ToString() != "0" && Session["Power"].ToString() != "2")
            {
                DBUtility.CRCommon.Show(this, "权限不够!", "right.aspx");
                str = "right.aspx";
            }
            else 
            {
                str = "addfileinfo.aspx";
            }
        }
    }