为什么我的查询字符串不起作用?

时间:2012-04-24 08:49:33

标签: c# asp.net

我在查询字符串中遇到问题。以下是我的asp代码

  <asp:Label ID="Lable1" runat="server" Text=""  ></asp:Label>
  <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

C#代码:

  protected void Page_Load(object sender, EventArgs e)
{   
}
protected void Button1_Click(object sender, EventArgs e)
{
    Lable1.Text += Request.QueryString["refresh"] ;
    Response.Redirect("QueryString1t.aspx?refresh=" + 1 + "");    
}

据我所知,Lable1文本每次都会在按钮点击时更改。 Lable1文本不应该在页面加载时显示任何内容。在按钮上单击它应该像第一次单击1,第二次单击11,依此类推.. 但它没有表现出我的期望。请告诉我,我错在哪里?

2 个答案:

答案 0 :(得分:1)

在设置标签文字后,您正在重定向,方法错误。

试试这个: -

protected void Page_Load(object sender, EventArgs e)
{
    Lable1.Text = Request.QueryString["refresh"];
}
protected void Button1_Click(object sender, EventArgs e)
{
    Response.Redirect("QueryString1t.aspx?refresh=" +
     string.IsNullOrEmpty(Request.QueryString["refresh"]) ? 0 :
      Convert.ToInt32(Request.QueryString["refresh"]) + 1 + "");    
}

或者这个: -

protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
    Lable1.Text = string.IsNullOrEmpty(Lable1.Text) ? "0" :
        (Convert.ToInt32(Lable1.Text) + 1).ToString();  
}

答案 1 :(得分:0)

看看这个:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

特别是周期中的第四和第五个事件。

如果您希望在那里更新文本,那么您需要将该代码放在页面加载中,而不是单击事件处理程序。

简而言之,您必须这样想:每次进行重定向时,您都会失去视图状态,

http://msdn.microsoft.com/en-us/library/ms972976.aspx

这是ASP.NET跟踪控件更新的方法,就像在事件处理程序中一样。因此,您的更新会立即丢失。

您要点击的下一段代码是您的加载事件,因此 是您需要设置标签文本属性的地方。

How do I persist the value of a label through a response.redirect?