如何重定向到其他页面

本文关键字:其他 重定向 | 更新日期: 2023-09-27 18:25:35

我有这8个文本框,要求用户填写其中的数据,在他们确认后,他们会点击提交数据并将其保存在数据库中。这个过程运行得很好,但我只是不知道如何将用户重定向到下一页,告诉他们"记录已成功添加"。在这里我粘贴代码片段。希望你们能帮助我。谢谢。

protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings       ["Connection"].ConnectionString);
    SqlCommand cmd = new SqlCommand("Insert into......");
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@name", Membership.GetUser().UserName);
cmd.Parameters.AddWithValue("@bulan", Label1.Text);
cmd.Parameters.AddWithValue("@ex1s", Label18.Text);
cmd.Parameters.AddWithValue("@p1s", Label20.Text);
cmd.Parameters.AddWithValue("@ex2s", Label2.Text);
cmd.Parameters.AddWithValue("@p2s", Label21.Text);
cmd.Parameters.AddWithValue("@ex3s", Label3.Text); 
cmd.Parameters.AddWithValue("@p3s", Label22.Text); 
cmd.Parameters.AddWithValue("@ex4s", Label4.Text);
cmd.Parameters.AddWithValue("@p4s", Label23.Text);
cmd.Parameters.AddWithValue("@ex5s", Label5.Text);
cmd.Parameters.AddWithValue("@p5s", Label24.Text);
cmd.Parameters.AddWithValue("@ex6s", Label6.Text);
cmd.Parameters.AddWithValue("@p6s", Label25.Text);
cmd.Parameters.AddWithValue("@ex7s", Label7.Text);
cmd.Parameters.AddWithValue("@p7s", Label26.Text);
cmd.Parameters.AddWithValue("@ex8s", Label8.Text);     
cmd.Parameters.AddWithValue("@p8s", Label27.Text);
cmd.Parameters.AddWithValue("@totals", Label28.Text);
conn.Open();
cmd.ExecuteNonQuery();

如何重定向到其他页面

Response.Redirect("nextPage.aspx");

也许您可以使用if…else。。。例如:

  int rowsAffected = cmd.ExecuteNonQuery();
        if (rowsAffected == 1)
        {
            //Success notification 
        }
        else
        {
            //Error notification 
        }
    }

您有几个选项。按偏好排序:

  1. 修改添加记录的页面的输出,以显示成功消息
  2. 服务器端重定向,使用Server.Transfer()
  3. 使用Response.Redirect()发出HTTP重定向

我将用完成它

[...]
conn.Close();
Response.Redirect("~/NewPage.aspx?msg=complete");

将完成您的代码(关闭连接很重要)Response.RRedirect会将用户发送到方法param中的页面。

在NewPage.aspx上,我将捕获url参数:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        if(Request.QueryString["msg"] != null)
        {
            litMsg.Text = "<div id='msgTxt' style='display:none;background-color:red;'>" + Request.QueryString["msg"] + "</div>";
        }
    }
}

其中,litMsg是页面上的文字控件。为了增加趣味性,我在NewPage.aspx 上使用了一些JQuery

<asp:Literal ID="litMsg" Text="" runat="server" />
<script type="text/javascript">
    try {
        $("#msgTxt").fadeIn("slow");
    } catch (e) {
    //it's probably not there
    }
</script>

更有意义?:)

方法1

你可以有一个隐藏的面板,然后按钮可以显示面板,并设置面板的文本。

这肯定会奏效。

方法2

另一种方法是HTML方式。您可以触发以下操作:

Response.Redirect("MyPage.aspx?message=Records are successfully added");

然后在你的ASPX文件中处理它:

<p>
<%= Request["message"] %>
</p>