写一个简单的注册页面,
想让注册成功后跳转到下一个页面,可是不管用,
一个是注册页面,defalut是用来判断和写入数据库的页面
logo是注册后想跳入的页面。
实现不了,
注册页面代码:<%@ Page Language="C#" Debug="true" AutoEventWireup="true" CodeFile="regest.aspx.cs" Inherits="regest" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        function checkName() {
            var xmlhttp;
            if (window.XMLHttpRequest) {
               xmlhttp = new XMLHttpRequest();
            }
           else {
               xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
           }
           var name = document.getElementById("username").value;
           if (name == null) {
               alert("用户名为空");
               return;
           }
           var url = "Default.aspx?name="+escape(name)+"&type=checkName";
           xmlhttp.open("get", url, true);
           xmlhttp.onreadystatechange = function () {
               if (xmlhttp.readyState == 4) {
                   document.getElementById('span1').innerHTML = xmlhttp.responseText; 
               }
           }
           xmlhttp.send(null);
       }
       function sub_onclick() {
           var xmlhttp;
           if (window.XMLHttpRequest) {
               xmlhttp = new XMLHttpRequest();
           }
           else {
               xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
           }
           var name = document.getElementById("username").value;
           var pass = document.getElementById("password").value;
           var email = document.getElementById("email").value;
           var url = "Default.aspx?name="+escape(name)+"&password=" + escape(pass) + "&email=" + escape(email) + "&type=submit";
           xmlhttp.open("get", url, true);
           xmlhttp.send(null);
       }    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <table>
      <caption>
       用户注册
      </caption>
      <tr>
       <td>
        <label for="username">用户名</label>
       </td>
       <td>
        <input type="text" name="username" id="username" onchange="checkName()"/>
       </td>
       <td style="color:Red">
        <span id="span1"></span>
       </td>
      </tr>
      <tr>
       <td>
        <label for="password">密码</label>
       </td>
       <td>
        <input type="password" id="password" runat="server" />
       </td>
       <td>
           <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="密码为空" ControlToValidate="password"></asp:RequiredFieldValidator>
       </td>
      </tr>
      <tr>
       <td>
        <label>电子邮件</label>
       </td>
       <td>
        <input type="text" id="email" runat="server"/>
       </td>
       <td>
           <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="邮箱为空" ControlToValidate="email"></asp:RequiredFieldValidator>
           <asp:RegularExpressionValidator ControlToValidate="email" ID="RegularExpressionValidator1" runat="server" ErrorMessage="输入格式错误" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
       </td>
      </tr>
      <tr>
       <td align="center" colspan="2">
        <input type="submit" id="sub" value="注册" onclick="sub_onclick()" />
       </td>
      </tr>
     </table>
    </div>
    </form>
</body>
</html>
defalut页面代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page 
{
   
    
    protected void Page_Load(object sender, EventArgs e)
    {
        string type = Request["type"];
        if (type == "checkName")
        {
            string Name = Request["name"];
            CMyConnection name = new CMyConnection();
            string sqlstr = "select * from users where username='"+ Name+"'";
            if (name.doSelect(sqlstr, "userna").Tables["userna"].Rows.Count!=0)
            {
                Response.Clear();
                Response.Write("用户名已存在");
                Response.End();
            }
            else
            {
                Response.Clear();
                Response.Write("");
                Response.End();
            }
        }
        if (type == "submit")
        {
            string Name = Request["name"];
            string password = Request["password"];
            string email = Request["email"];
            string sqlinsert = "insert into users(username,password,email)values('" + Name + "','" + password + "','" + email + "')";
            CMyConnection submit = new CMyConnection();
            submit.doInsert(sqlinsert);
            Response.Redirect("logo.aspx");  
        }
    }
}

解决方案 »

  1.   

    Response.Redirect("logo.aspx");   
    logo.aspx和default.aspx在同一级吗?路径有问题吧。
      

  2.   

    报什么错了嘛?string sqlinsert = "insert into users(username,password,email)values('" + Name + "','" + password + "','" + email + "')";连个空格都没有
    string sqlinsert = "insert into users(username,password,email) values('" + Name + "','" + password + "','" + email + "')";你这打个断点,跟踪一下,30秒发现问题。
      

  3.   


    把下面的这些个去掉  Response.End();
      

  4.   

    Response.End()作用是执行完它之前的内容,后面的所有内容都不会再绘制了!把它去掉吧!
      

  5.   

    LZ你是用AJAX异步请求,所有Response.Redirect("logo.aspx")在界面上已经看不到跳转了。像这种方式你应用javascript来做跳转。还有,我不赞同你的程序,还停留在asp.net 1.1的时代。
      

  6.   

    改改这里if (type == "submit")
      {
      string Name = Request["name"];
      string password = Request["password"];
      string email = Request["email"];
      string sqlinsert = "insert into users(username,password,email)values('" + Name + "','" + password + "','" + email + "')";
      CMyConnection submit = new CMyConnection();
      submit.doInsert(sqlinsert);
      //Response.Redirect("logo.aspx");  //不在这里跳转
      Response.Write("true"); //返回一个值,让JS捕捉并判断是否跳转
      Response.End();
      }
      }再修改regest.aspx页Javasciprtvar name = document.getElementById("username").value;
      var pass = document.getElementById("password").value;
      var email = document.getElementById("email").value;
      var url = "Default.aspx?name="+escape(name)+"&password=" + escape(pass) + "&email=" + escape(email) + "&type=submit";
    //定义AJAX回调事件
    xmlhttp.onreadystatechange=function(){
       var re=xmlhttp.responseText;
       alert(re);//提示一下看看返回值是什么
       if(re=='true')
         window.location.href='logo.aspx';//跳转到目标页
    };  xmlhttp.open("get", url, true);
      xmlhttp.send(null);
      

  7.   

    sub_onclick() 
    你是通过来提交到数库的。后台是不会跳转。