gpt4 book ai didi

c# - Page_Load() 触发时未处理 Cookie

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

我的问题是,当我按下我的按钮(这会导致回发)时,在 click_event 中创建的 cookie 没有在我在 Page_Load< 中调用的方法中得到处理

代码如下:

//Page_Load
protected void Page_Load(object sender, EventArgs e)
{
if(!Context.User.Identity.IsAuthenticated)
{
FormsAuthentication.RedirectToLoginPage();
}
loadCookies();
}
//loadCookies
public void loadCookies()
{
for (int i = 0; i < 40; i++ )
{
if(Request.Cookies["FiscaleTable" + i.ToString()] != null){
TableRow row = new TableRow();
for (int i2 = 0; i2 < 10; i2++ )
{
TableCell cell = new TableCell();
cell.Text = Request.Cookies["FiscaleTable" + i.ToString()][i2.ToString()];
row.Cells.Add(cell);
}
FiscaleEenhedenTable.Rows.Add(row);
}
}
}
//Button_Click
public void makeFiscaleEenhedenCookie(object sender, EventArgs e)
{
ContentPlaceHolder Content;
Content = (ContentPlaceHolder)Master.FindControl("MainContent");
HttpCookie FiscaleEenhedenCookie = new HttpCookie("FiscaleTable" + (FiscaleEenhedenTable.Rows.Count - 1).ToString());
FiscaleEenhedenCookie.Expires = DateTime.Now.AddDays(1d);
for (int i2 = 0; i2 < 10; i2++ )
{
TextBox temp = (TextBox)Content.FindControl("FiscaleUnitTextBox" + (i2 + 1).ToString());
FiscaleEenhedenCookie[i2.ToString()] = temp.Text;
}
Response.Cookies.Add(FiscaleEenhedenCookie);
}
//Button
<asp:Button ID="FiscaleAddButton" runat="server" CommandName="FiAdd" Text="Toevoegen" ClientIDMode="Static" OnClick="makeFiscaleEenhedenCookie"/>

只要我调用另一个回发或刷新页面,就会处理 cookie。我不知道为什么会这样。任何帮助都会有所帮助。

最佳答案

这是预期的行为。单击按钮时,回发完成。 Page_Load 被执行,然后 makeFisicalEenhedenCookie 被执行,页面呈现并与您在响应中设置的 cookie 一起发送给用户。当另一个回发完成时,用户将 cookie 发送到服务器,您可以处理它。它是 asp.net 页面生命周期的基本流程。

简而言之:如果您在响应中设置了一个 cookie,您将无法在下一个请求之前查询该 cookie。

关于c# - Page_Load() 触发时未处理 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28692476/

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