2013-04-29 2 views
1

После регистрации пользователя им пытаются перенаправить клиента на страницу по умолчанию и самый простой способ сделать это, кажется, добавив следующую строку в конце кнопки отправки:Response.Redirect ("Default.aspx"); не работает

Response.Redirect("Default.aspx"); 

но не работает , он остается на одной странице без каких-либо ошибок.

Я также попытался с:

Server.Transfer("Default.aspx"); 

без удачи.

Heres полный код.

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

+2

Попробуйте это-> 'Response.Redirect (" ~/Default.aspx ", true);' – Elyor

+1

Вы уверены, что путь прав? Default.aspx должен находиться в той же папке, что и текущая страница. – guilhermecgs

ответ

2

Я должен знать, где находится страница регистрации? Default.aspx находится в другой папке?

Но Попробуйте

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

или

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

Я надеюсь, что это помогает.

+1

Пробовал оба, они находятся в одном каталоге. Я начинаю думать, что я должен перезапустить VS. – octohedron

+0

Вы пытаетесь проследить код? Может быть, есть ошибка? –

+0

щелкните правой кнопкой мыши по папке проекта в проводнике решений и нажмите на чистый – Rahul

-1

Насколько я помню, кнопка отправить вызовет постбэк, который будет выполнять свой код, и перезагрузить страницу позже. Попробуйте добавить это в свою Page_Load:

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

Все еще не работает – octohedron

+0

Переадресация уже находится внутри кнопки click (которая вызывается только на PostBack). – Aristos

+0

IsPostBack не играет никакой роли в этом случае .... – Rahul

Смежные вопросы