gpt4 book ai didi

c# - AutoPostBack 的 Cookie 响应问题

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

因为我什至无法描述问题,所以我不知道如何放置标题,这就是问题所在..

(这只是简单的问题)

假设我有两个复选框设置为 AutoPostBack=True

protected void cbPop_CheckedChanged(object sender, EventArgs e)
{
Response.Cookies["UserPreferences"].Value = Request.Cookies["UserPreferences"].Value + "1";
Label1.Text = Request.Cookies["UserPreferences"].Value.Length.ToString();
}

protected void cbDown_CheckedChanged(object sender, EventArgs e)
{
Response.Cookies["UserPreferences"].Value = Request.Cookies["UserPreferences"].Value + "2";
Label1.Text = Request.Cookies["UserPreferences"].Value.Length.ToString();
}

这是我的期望:

我希望标签的文本在我选中第一个复选框时显示“1”,而在我选中第二个复选框时显示“2”

这是我得到的:

我两次都得到“1”,当我手动检查 cookie 时,我看到它包含 12,因此在检查第二个复选框后它的长度应该变为 2,而不是标签显示它的长度保持为 1

为什么会这样!!我错过了什么吗??

最佳答案

如果您想在调用 CheckedChanged 后立即看到值,您需要将 Response 值分配给 Label

否则,Label 控件将不会反射(reflect)更改,直到下次回发。

见评论区的箭头——

protected void cbPop_CheckedChanged(object sender, EventArgs e)
{
Response.Cookies["UserPreferences"].Value =
Request.Cookies["UserPreferences"].Value + "1";
Label1.Text = Response.Cookies["UserPreferences"].Value.Length.ToString();
// ^
// |
}

protected void cbDown_CheckedChanged(object sender, EventArgs e)
{
Response.Cookies["UserPreferences"].Value =
Request.Cookies["UserPreferences"].Value + "2";
Label1.Text = Response.Cookies["UserPreferences"].Value.Length.ToString();
// ^
// |
}

关于c# - AutoPostBack 的 Cookie 响应问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23255002/

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