很抱歉,如果这是一个骗局。我找不到任何与我的问题完全相似的东西。
我在表单上有一个asp:标签。在提交按钮postaback上,我进行服务器端验证。如果失败,我将标签设置为某个文本值。
如果我提供有效信息并再次点击提交,我会将标签设置为空,作为提交点击的一部分,它会执行回发并显示新页面。
如果单击后退按钮,它会在表单和错误标签中显示正确的信息。
再次单击“提交”表示标签文本属性为空,尽管文本在屏幕上清晰可见。
我希望标签为空(实际上不可见)因为我在执行任何操作之前将其设置为空。
我尝试过使用Text属性和Visible属性,但结果相同。
准备好了吗? GO ...
答案 0 :(得分:0)
你试过了吗?
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Visible = false;
}
每次加载页面时,您的邮件都将不可见。因此,当您进行服务器端验证时,您可以设置标签的文本并设置Visibility = true。
答案 1 :(得分:0)
“如果我单击后退按钮,它会在表单和错误标签中显示正确的信息。” :没问题;它会显示您发布页面时的状态。
如果您不希望消息Label保留其可见或文本,则标记应为:
<asp:label id='myMsgLbl' runat='server' enableviewstate='false' visible='false/>'
- 修改
据我所知,后退按钮的行为符合预期。
也许您应该寻找允许禁用后退按钮的解决方案,
或禁用表单缓存(但我猜这个解决方案会比你的第一个问题更糟糕)
private void Page_Load(object sender, System.EventArgs e)
{
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);