0
我有一個服務器端變量,它在PreRender中被分配了一個值。爲了簡單起見,假設我這樣做:ASP.NET UpdatePanel - 內聯變量
protected string test;
protected void Page_PreRender(object sender, EventArgs e)
{
test = Guid.NewGuid().ToString();
}
在我的標記,該變量再交由一個UpdatePanel內,像這樣:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Perform postback" />
<script type="text/javascript">
Sys.Application.add_load(function() {
alert('<%=test%>');
});
</script>
</ContentTemplate>
</asp:UpdatePanel>
在第一負荷頁面,JavaScript預警功能爲我提供了一個隨機值,如預期的那樣。但是,在隨後的任何回寄中,Guid的原始值都會保留。
有人可以解釋爲什麼這樣,並提供解決方案?例如,我相當肯定我可以通過將「測試」的值放在隱藏字段中來實現所需的行爲,但理想情況下我不必沉到這些深度。不幸的是用更輕的東西替換UpdatePanel並不是真正的選擇。