Response.Redirect(“Default.aspx”);不工作

问题描述:

用户注册之后我尝试将客户端重定向到默认页面,并做到这一点似乎在提交按钮结束要加入这一行的最简单的方法:Response.Redirect(“Default.aspx”);不工作

Response.Redirect("Default.aspx"); 

,但它不工作,它保持在同一页面中而不显示任何错误。

我也试过用:

Server.Transfer("Default.aspx"); 

没有任何的运气。

继承人完整代码。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 

namespace Carnisoftix 
{ 
    public partial class Register : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
     } 

     protected void btnSubmit_Click(object sender, EventArgs e) 
     { 
      carniuser oUsr = new carniuser(); 
      oUsr.Email = txtEmail.Text; 
      oUsr.Name = txtName.Text; 
      oUsr.Pass = txtPassword.Text; 
      oUsr.Phone = txtPhone.Text; 
      oUsr.Usrname = txtUsername.Text; 
      oUsr.Address = txtAddress.Text; 
      oUsr.SpecialK = Convert.ToInt16(txtSpecial.Text); 
      oUsr.Auth = 1; 
      regUsr(oUsr); 

      Response.Redirect("Default.aspx"); 
     } 
     public static int regUsr(carniuser oUsr) 
     { 
      int oNum; 
      SqlConnection oConnection = new SqlConnection("Server=.\\SQLExpress;AttachDbFilename=L:\\Apps\\VS Projects\\Carnisoftix\\CarniDb.mdf;Database=CarniDb;Trusted_Connection=Yes;"); 
      string oSql = "ADDUSR"; 
      SqlCommand oCom = new SqlCommand(oSql, oConnection); 
      oCom.CommandType = CommandType.StoredProcedure; 
      oCom.Parameters.AddWithValue("@useremail", oUsr.Email); 
      oCom.Parameters.AddWithValue("@userpass", oUsr.Pass); 
      oCom.Parameters.AddWithValue("@name", oUsr.Name); 
      oCom.Parameters.AddWithValue("@phone", oUsr.Phone); 
      oCom.Parameters.AddWithValue("@address", oUsr.Address); 
      oCom.Parameters.AddWithValue("@username", oUsr.Usrname); 
      oCom.Parameters.AddWithValue("@authority", oUsr.Auth); 
      oCom.Parameters.AddWithValue("@special", oUsr.SpecialK); 
      SqlParameter oReturn = new SqlParameter("@out", SqlDbType.Int); 
      oReturn.Direction = ParameterDirection.ReturnValue; 
      oCom.Parameters.Add(oReturn); 
      oConnection.Open(); 
      oCom.ExecuteNonQuery(); 
      oNum = (int)oCom.Parameters["@out"].Value; 
      oConnection.Close(); 
      return oNum; 
     } 
    } 
    /*@useremail, 
    @username, 
    @userpass, 
    @name, 
    @phone, 
    @address, 
    @authority, 
    @special*/ 
    public class carniuser 
    { 
     private string email, usrname, pass, name, phone, address; 
     private int authority, specialK; 
     public carniuser() 
     { 
      email = ""; 
      usrname = ""; 
      pass = ""; 
      name = ""; 
      phone = ""; 
      address = ""; 
      authority = 1; 
      specialK = 1; 
     } 
     public string Email 
     { 
      get { return email; } 
      set { email = value; } 
     } 
     public string Pass 
     { 
      get { return pass; } 
      set { pass = value; } 
     } 
     public string Name 
     { 
      get { return name; } 
      set { name = value; } 
     } 
     public string Phone 
     { 
      get { return phone; } 
      set { phone = value; } 
     } 
     public string Address 
     { 
      get { return address; } 
      set { address = value; } 
     } 
     public string Usrname 
     { 
      get { return usrname; } 
      set { usrname = value; } 
     } 
     public int Auth 
     { 
      get { return authority; } 
      set { authority = value; } 
     } 
     public int SpecialK 
     { 
      get { return specialK; } 
      set { specialK = value; } 
     } 

     public carniuser(string email, string usrname, string pass, string name, string phone, string address, int authority, int specialK) 
     { 
      //string _email = email; 
      Email = email; 
      Usrname = usrname; 
      Pass = pass; 
      Name = name; 
      Phone = phone; 
      Address = address; 
      Auth = authority; 
      SpecialK = specialK; 
     } 
    } 
} 
+1

你确定你实际提交的数据?你有没有放置一个断点,并看到事件处理程序被解雇? – Oded 2013-04-29 11:23:22

+2

试试这个 - >'Response.Redirect(“〜/ Default.aspx”,true);' – Elyor 2013-04-29 11:23:47

+1

你确定路径正确吗? Default.aspx必须与当前页面位于同一文件夹中。 – guilhermecgs 2013-04-29 11:24:01

我必须知道注册页面在哪里? Default.aspx是在不同的文件夹?

但试试这个

Response.Redirect("../Default.aspx"); 

Response.Redirect("~/Default.aspx"); 

我希望这有助于。

+1

试过两个,他们在同一个目录。我开始想我应该重新启动VS. – octohedron 2013-04-29 11:56:28

+0

你试图跟踪代码?也许有错误? – 2013-04-29 11:57:43

+0

右键单击解决方案资源管理器中的项目文件夹,然后单击清理 – Rahul 2013-04-29 11:57:47

据我所知,提交按钮将导致一个回发,它将执行您的代码,然后重新加载页面。尝试将此添加到您的Page_Load中:

Response.Redirect("Default.aspx"); 
+1

仍然不能正常工作 – octohedron 2013-04-29 11:31:33

+0

重定向已经在点击按钮内(仅在回发站上被调用) – Aristos 2013-04-29 11:31:41

+0

IsPostBack在这种情况下没有任何作用.... – Rahul 2013-04-29 11:33:55