2014-10-10 64 views
1

我有一個ASPX網頁,它有四個字段,電子郵件,確認電子郵件,密碼,確認密碼和顯示名稱。我已將代碼放在頁面後面的代碼中,以便按下注冊按鈕時,它應提交信息並向數據庫添加新用戶。但是,當我點擊按鈕時,它只刷新頁面。我試圖搞亂後面的代碼,這樣當按鈕被點擊時,它只是重定向到主頁,沒有if語句,但它仍然刷新頁面。 下面是相關的代碼背後:註冊按鈕刷新頁面,不添加用戶

namespace PiccyPic 
{ 
    public partial class Login : System.Web.UI.Page 
    { 
     protected void butRegisterDefine(object sender, EventArgs e) 
     { 
      butRegister.Click += butRegister_Click; 
     } 
     void butRegister_Click(object sender, EventArgs e) 
     { 
     using (DataLayer.Repository db = new DataLayer.Repository()) 
     { 
      BO.User user = db.UserGet(txtEmail.Text); 

      if (user != null) 
      { 
       //If the same email exists 
       pnlError.Visible = true; 
       lblError.Text = "Error: The email you have entered is already assigned to an account."; 
      } 
      else if (user.Username != null) 
      { 
       //If the same username exists 
       pnlError.Visible = true; 
       lblError.Text = "Error: The username you have entered is already assigned to an account."; 

      } 
      else if (txtEmail.Text != txtEmailConfirm.Text) 
      { 
       //If the emails don't match 
       pnlError.Visible = true; 
       lblError.Text = "Error: The emails you have entered do not match"; 
      } 
      else if (txtPassword.Text != txtPasswordConfirm.Text) 
      { 
       //If the passwords don't match 
       pnlError.Visible = true; 
       lblError.Text = "Error: The passwords you have entered do not match"; 
      } 
      else 
      { 
       // Add user 
       var newUser = new BO.User(txtEmail.Text, txtPassword.Text, txtUsername.Text); 

       db.UserAdd(newUser); 
       db.Save(); 

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


     } 
    } 
} 
+0

是否有任何JavaScript。尋找JavaScript錯誤。 – 2014-10-10 11:40:03

+0

沒有javascript錯誤 – Frayt 2014-10-10 11:59:17

+0

這不是傳統的ASP。請重新登錄。 – Paul 2014-10-13 07:37:26

回答

0

什麼是你的OnClick方法在您的標記設置爲?我不是C#專家,但在我看來,您的OnClick未正確註冊。 「butRegisterDefine」何時運行?

如果你沒有定義onlick,你需要在某處運行事件註冊(butRegisterDefine)。 Page_Load似乎是一個好地方。在片段下面工作。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="ButtonTest.Login" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button runat="server" ID="butRegister" Text="Register" /> 
     <asp:Label runat="server" ID="lblSomething"></asp:Label> 
    </div> 
    </form> 
</body> 
</html> 

代碼隱藏:

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

namespace ButtonTest 
{ 
    public partial class Login : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      butRegisterDefine(sender, e); 
     } 

     protected void butRegisterDefine(object sender, EventArgs e) 
     { 
      butRegister.Click += butRegister_Click; 
     } 

     protected void butRegister_Click(object sender, EventArgs e) 
     { 
      lblSomething.Text = "Clicked!"; 
     } 
    } 
} 
+0

我還沒有確定我的onclick的標識,所以它的默認: 的 butRegisterDefine是存在的,因爲這是我是如何受教的。你先用void來定義butRegister_Click,然後在後面的函數中使用butRegister_Click。 – Frayt 2014-10-10 12:47:53