下面是我登录按钮的代码,本来应该从http://localhost:3298/Admin/Login.aspx 跳转到
http://localhost:3298/Admin/Main.aspx,可是不知道为什么跳转到http://localhost:3298/Admin/Login.aspx?ReturnUrl=%2fAdmin%2fMain.aspx这个跳径,好奇怪,原来出这个问题我只要清下IE里的COOKIES就可以正常中转,现在不知道为什么,清了也没用了。一直跳这个方便面。高手来指点下。
protected void imgbtnlogin_Click(object sender, ImageClickEventArgs e)
        {
            if (this.txtworkcard.Text == string.Empty)
            {
                Response.Write("<script>alert('您输入的工号有误!');</script>");
            }
            else
            {
                ISysMgrContract dal = DataAccess.GetSysMgrDAL();
               
                UserModel user = dal.GetUserByWhere(string.Format("where UserCode='{0}'", txtworkcard.Text));
                if (user == null) return;
                if (user.USERPASSWORD != txtpassword.Text.Trim())
                {
                    Response.Write("<script>alert('您输入的密码有误,登录失败!');</script>");
                }
                else
                {
                    Response.Cookies["userid"].Value = user.USERID.ToString();
                    Response.Cookies["userid"].Expires = DateTime.Now.AddDays(1);
                    Response.Cookies["username"].Value = ddlname.SelectedItem.Text.ToString();
                    Response.Cookies["username"].Expires = DateTime.Now.AddDays(1);
                    Response.Cookies["modality"].Value = ddldictionary.SelectedItem.Value.ToString().Trim();
                    Response.Cookies["modality"].Expires = DateTime.Now.AddDays(1);
                    
                    //页面跳转
                    Response.Redirect("../Admin/Main.aspx", true);
                    Response.End();
                }
            }
        }

解决方案 »

  1.   

      Response.Redirect("../Admin/Main.aspx", true);
    ===========
      Response.Redirect("Main.aspx");
      

  2.   

    对了,为什么Response.Cookies里面我看了下,一样的COOKIES也会存在,一个有值,一个没值而已好奇怪
      

  3.   

     Response.Write("<script>window.location.href('Main.aspx')</script>");
      

  4.   


    我那样写应该没有错啊,因为以前可以的。只是有时候会跳不了,清下COOKIE就行,现在不管怎么样都跳转不了,我在想是不是和COOKIE有关系。这个登录按钮是我是改动过一下,但我想应该没问题的啊
      

  5.   

    我在想会不会是和我WEB。CONFIG的什么配置有关系呢?
    感觉好奇怪
      

  6.   

     this.Response.Write("<script language='javascript'>window.open('main.aspx','_self')</script>");
      

  7.   

    Server.Transfer();  这样改下 试试
      

  8.   

    把缓存清除掉,然后调试下看看执行到哪了,另外
     Response.Redirect("../Admin/Main.aspx", true);
     Response.End();只需要Response.Redirect("../Admin/Main.aspx");就够了,它默认就是Response.End();的
      

  9.   

    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user.USERID.ToString(), DateTime.Now, DateTime.Now.AddMinutes(60), false, user.USERNAME);
                        string str = FormsAuthentication.Encrypt(ticket);
                        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, str);
                        this.Context.Response.Cookies.Add(cookie);这个代码干嘛用的?我加了就可以了。以前有时候跳转不了什么关系?COOKIE丢了?
      

  10.   


    ASP。NET要清缓存怎么清?
      

  11.   


    这个就是在服务端的Cookie集合中添加一个Cookie,然后把它发送给客户端清除缓存,一搜一大把啊Response.Buffer   =   true  ....
      

  12.   


    清除缓存的方法试了一堆没用在服务端的Cookie集合中添加一个Cookie,然后把它发送给客户端,有什么用?