我的代码隐藏中有这个属性。
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。为什么我坚持使用第一页加载的初始值?