我正在尝试为值字段创建一个简单的“恢复”按钮。 由于某种原因,ViewState中存储的字符串不显示。我跟着一个教程,所以我真的不知道我做错了什么,我也在网上搜索了一个答案,很多人的主要问题是他们没有在页面中启用ViewState,我也没有这样做我添加了它(但按钮仍然不起作用)。至于我编写代码的方式,或者我如何使用ViewState,我都找不到问题。 任何帮助将不胜感激。
所以这就是我在Contact.aspx页面中的内容:
<%@ Page Title="" Language="C#" EnableViewState="true"/*...*/
<asp:TextBox class="form-control" id="usr" runat="server"/>
<asp:Button Text="Send" ID="buttonSend" runat="server"
onclick="buttonSend_Click"/>
<asp:Button Text="Recover" id="buttonRecover" runat="server"
onclick="buttonRecover_Click"/>
这是后面的代码,在Contact.aspx.cs中:
protected void buttonSend_Click(object sender, EventArgs e)
{
ViewState["name"] = Request.Form["usr"];
usr.Text=string.Empty;
}
protected void buttonRecover_Click(object sender, EventArgs e)
{
usr.Text = Convert.ToString(ViewState["name"]);
}
答案 0 :(得分:3)
问题是Request.Form["usr"]
不存在。控件的ID与Form Post Key(输入控件的name
)不同。
所以要么使用
ViewState["name"] = Request.Form[usr.UniqueID];
或推荐方式
ViewState["name"] = usr.Text;