C# 值在页面生命周期中发生变化?
我正在尝试制作一个简单的网站,将生成2个数字,然后用户将需要回答这些数字中的2个相加的正确结果 这是我的ASPX:C# 值在页面生命周期中发生变化?,c#,asp.net,C#,Asp.net,我正在尝试制作一个简单的网站,将生成2个数字,然后用户将需要回答这些数字中的2个相加的正确结果 这是我的ASPX: <div id="questionContainer"> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <div id="firstNumber"> <%
<div id="questionContainer">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="firstNumber">
<%=firstNum %>
</div>
<div id="operator">
<%=operatorString %>
</div>
<div id="secondNumber">
<%=secondNum %>
</div>
<div id="answerWrapper">
<input type="text" id="answer" name="answer" placeholder="your answer" />
<asp:Button runat="server" ID="submit" name="submit" OnClick="AnswerQuestion" Text="Answer" />
<input type="hidden" name="op" id="op" value="1" />
<div id="error">
<%=textForUser %>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
问题是我注意到每次我试图回答文本框中的问题时,数字都会发生变化。。好像我没有回答正确的问题。问题是您使用的是静态变量。这些请求在所有请求中共享。不要为此目的使用静态变量,而是将它们存储在其他位置(如会话、视图状态、Hiddenfield等)
- 应用
- 饼干
- 表单发布/隐藏表单字段
- 质询
- 会议
- ASP.NET中的新状态容器
- 缓存
- 上下文
- 视图状态
- Web.config和Machine.config文件
。。。当然还有数据库。问题是您使用的是静态变量。这些请求在所有请求中共享。不要为此目的使用静态变量,而是将它们存储在其他位置(如会话、视图状态、Hiddenfield等)
- 应用
- 饼干
- 表单发布/隐藏表单字段
- 质询
- 会议
- ASP.NET中的新状态容器
- 缓存
- 上下文
- 视图状态
- Web.config和Machine.config文件
。。。当然还有数据库。您在回发时似乎正在重新生成一个新的数字对。基本上,逻辑应该是这样的,如果你打算反复停留在同一页面上,只需发布答案:
1) Is this a postback?
-> No: Generate a new value and store it in ViewState. Hold onto this value.
-> Yes: Do we have a stored answer value in ViewState?
-> No: Error? Something has gone wrong.
-> Yes: Fetch that Value and hold on to it
2) On Button Click, Is the answer you entered the same as the generated value?
-> No: Show Error
-> Yes: Show Success, Then generate a new value and store it in ViewState
您的算法似乎只在回发期间和每次回发时生成新的答案对 你似乎在回发邮件时重新生成一个新的数字对。基本上,逻辑应该是这样的,如果你打算反复停留在同一页面上,只需发布答案:
1) Is this a postback?
-> No: Generate a new value and store it in ViewState. Hold onto this value.
-> Yes: Do we have a stored answer value in ViewState?
-> No: Error? Something has gone wrong.
-> Yes: Fetch that Value and hold on to it
2) On Button Click, Is the answer you entered the same as the generated value?
-> No: Show Error
-> Yes: Show Success, Then generate a new value and store it in ViewState
您的算法似乎只在回发期间和每次回发时生成新的答案对