none
asp.net管理系统给客户分配不同的账号,客户登陆后跳转到不同的页面? RRS feed

  • 问题

  • 0123都是跳转到同一页面,用panel控件隐藏,其中4和5是不同的客户,要跳转到A.aspx和B.aspx,下面的代码怎么跳转不了呢?应该怎么呢?
    
    用0123登陆跳转页面都可以,但4 5就跳转不了
    
    // PanelBasic.Visible = false;
            //PanelAdmin.Visible = false; 
            if (Session["userType"] != null)
            {
               // Response.Write(Session["userType"].ToString());
                if (Session["userType"].ToString().Trim()=="0")
                {
                   // PanelBasic.Visible = false ;
                    //PanelAdmin.Visible = false; 
                }
                if (Session["userType"].ToString().Trim() == "1")
                {
                    PanelSuper.Visible = false;
                }
                if (Session["userType"].ToString().Trim() == "2" || Session["userType"].ToString().Trim() == "3" )
                {
                    PanelSuper.Visible = false;
                    PanelAdmin.Visible = false;               
                }
                if (Session["userType"].ToString().Trim() == "4")
                {
                    Response.Redirect("A.aspx");
                }
                if (Session["userType"].ToString().Trim() == "5")
                {
                    Response.Redirect("B.aspx");
                } 
                 
    
                HiddenFieldK.Value = FormsAuthentication.HashPasswordForStoringInConfigFile(Session["userType"]+"ty2010", "MD5");
                HiddenFieldU.Value = Session["userType"].ToString();
                HiddenFieldI.Value = Session["userID"].ToString();
              
            }
            else {
                Response.Redirect("/Login.html");
            }
    

    • 已移动 ThankfulHeart 2012年1月9日 3:48 ASP.NET的问题,谢谢。 (发件人:.NET Framework 一般性问题讨论区)
    2012年1月9日 3:06

答案

  • 首先,我建议你把所有的if替换成else if……的形式——因为之间是互斥关系:

     if (Session["userType"] != null)
            {
               // Response.Write(Session["userType"].ToString());
                if (Session["userType"].ToString().Trim()=="0")
                {
                   // PanelBasic.Visible = false ;
                    //PanelAdmin.Visible = false; 
                }
                else if (Session["userType"].ToString().Trim() == "1")
                {
                    PanelSuper.Visible = false;
                }
                else if (Session["userType"].ToString().Trim() == "2" || Session["userType"].ToString().Trim() == "3" )
                {
                    PanelSuper.Visible = false;
                    PanelAdmin.Visible = false;               
                }
                else if (Session["userType"].ToString().Trim() == "4")
                {
                    Response.Redirect("A.aspx");
                }
                else if (Session["userType"].ToString().Trim() == "5")
                {
                    Response.Redirect("B.aspx");
                } 
                HiddenFieldK.Value = FormsAuthentication.HashPasswordForStoringInConfigFile(Session["userType"]+"ty2010", "MD5");
                HiddenFieldU.Value = Session["userType"].ToString();
                HiddenFieldI.Value = Session["userID"].ToString();
            }
            else {
                Response.Redirect("/Login.html");
            }
    
    
    另外,请下断点到"4"和"5" 地方,看看userType究竟是什么。建议用Response.Write(Session["userType"]);放到头一句检测。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    • 已标记为答案 lqps 2012年1月10日 6:44
    2012年1月9日 3:58

全部回复

  • 首先,我建议你把所有的if替换成else if……的形式——因为之间是互斥关系:

     if (Session["userType"] != null)
            {
               // Response.Write(Session["userType"].ToString());
                if (Session["userType"].ToString().Trim()=="0")
                {
                   // PanelBasic.Visible = false ;
                    //PanelAdmin.Visible = false; 
                }
                else if (Session["userType"].ToString().Trim() == "1")
                {
                    PanelSuper.Visible = false;
                }
                else if (Session["userType"].ToString().Trim() == "2" || Session["userType"].ToString().Trim() == "3" )
                {
                    PanelSuper.Visible = false;
                    PanelAdmin.Visible = false;               
                }
                else if (Session["userType"].ToString().Trim() == "4")
                {
                    Response.Redirect("A.aspx");
                }
                else if (Session["userType"].ToString().Trim() == "5")
                {
                    Response.Redirect("B.aspx");
                } 
                HiddenFieldK.Value = FormsAuthentication.HashPasswordForStoringInConfigFile(Session["userType"]+"ty2010", "MD5");
                HiddenFieldU.Value = Session["userType"].ToString();
                HiddenFieldI.Value = Session["userID"].ToString();
            }
            else {
                Response.Redirect("/Login.html");
            }
    
    
    另外,请下断点到"4"和"5" 地方,看看userType究竟是什么。建议用Response.Write(Session["userType"]);放到头一句检测。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    • 已标记为答案 lqps 2012年1月10日 6:44
    2012年1月9日 3:58
  • 請問你用4和5登入的時候是否有Redirect到Login.html?
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2012年1月9日 10:36