gpt4 book ai didi

c# - EnableViewState = false - - 但好像还是 "working"

转载 作者:太空宇宙 更新时间:2023-11-03 19:13:19 25 4
gpt4 key购买 nike

我是一名新的 C# 程序员,刚刚创建了一个简单的程序。我首先希望它计算按钮点击次数,维护点击次数(回发)的累计次数。这奏效了。

现在我想关闭 EnableViewState,看看点击次数不会累积。因此,我关闭了文本框(名为 txtCount)的 EnableViewState (EnableViewState="False"),但它仍然以某种方式继续计算和累积我在帖子中的点击次数。我在这里错过了什么吗?在没有打开 ViewState 的情况下如何保持此文本框的状态?

protected void Button1_Click(Object sender, EventArgs e)
{
int count = int.Parse(txtCount.Text);
count++;
txtCount.Text = count.ToString();
}

最佳答案

您没有使用 ViewState,您使用的是表单元素本身。在这里,您从表单元素中读取:

int count = int.Parse(txtCount.Text);

在这里你写回表单元素:

txtCount.Text = count.ToString();

因此,该值存储在发送到 HTML 的 input 中,并作为 HTTP 表单发布的一部分发回。

如果您想更仔细地检查一下,请查看浏览器的调试工具。 (FireBug、Chrome 开发者工具、IE 开发者工具等)寻找选项卡/面板/等。捕获网络事件的位置。当您单击按钮时,您会想要查看发送到服务器的 POST 请求。

在该 POST 请求中是一系列键/值对。页面上的每个事件表单元素都会发送一个键/值对,而整个 View 状态本身只是来自隐藏表单元素的键/值对。 (其中值是 base-64 编码的字符串。)如果表单元素具有相关值,则它在 POST 请求中,因此在服务器端可用。

从帖子之间的文本框中删除文本,它应该停止计数。 (甚至可能在 int.Parse() 上抛出异常。

关于c# - EnableViewState = false - - 但好像还是 "working",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com