【发布时间】:2012-12-30 01:13:12
【问题描述】:
我的代码隐藏中有这个属性。
public string LocationOptions
{
get { return Session["LocationOptions"].ToString(); }
set { Session["LocationOptions"] = value; }
}
在前端,我有这个 javascript。
<script type="text/javascript">
function pageLoad(sender, args) {
InitLocationsAutoComplete();
}
</script>
<asp:UpdatePanel ID="upScript" runat="server">
<ContentTemplate>
<script type="text/javascript">
function InitLocationsAutoComplete() {
var locationsJson = '<%= LocationOptions %>';
alert(locationsJson);
}
</script>
</ContentTemplate>
</asp:UpdatePanel>
我在 C# 代码中的 getter 和 setter 上设置断点。
我正在使用 MVP,并且 setter 被演示者调用。
在第一页加载时,一切都按预期工作。设置器上的断点首先被击中。然后是getter上的断点。最后,我收到一个带有我希望看到的值的 javascript 警报。
我遇到了由其他更新面板触发的部分回发问题。在那些上,我的 setter 断点命中了一个新值。接下来我的 getter 断点被击中,如果我快速观看Session["LocationOptions"],我会在那里看到新值。但是当我收到 javascript 警报时,它仍然会在第一页加载时提醒初始值。
如果它仍然在 C# 中调用该属性,那么我不明白为什么更新的值没有传递给 javascript。为什么我卡在第一个页面加载时的初始值?
【问题讨论】:
标签: c# javascript asp.net updatepanel