我想要做的是在页面生命周期结束时设置一个ViewState变量:我拥有的是完全加载的asp.net页面 - 使用客户端JavaScript与AJAX调用进行通信...当ajax调用来自执行客户端JavaScript,执行服务器代码中的一些C#方法。在执行期间,我想设置一个ViewState变量并在下一个回发中使用它,但显然没有存储ViewState变量 - 因为页面已完全加载 - 所有逻辑都在页面生命周期结束时执行。
我尝试在设置ViewState变量之前和之后显式调用这些方法:
this.TrackViewState();
if (startAddr != "")
{
ViewState["startAddress"] = startAddr;
}
this.SaveViewState();
但没有成功......在下一次回发中,ViewState["startAddress"]
为空。
任何建议,如果可以实现上述功能?! 谢谢!
答案 0 :(得分:2)
您可以覆盖页面的SaveViewState方法,以查看它是否在您的代码之前调用。 SaveViewState是您可以在ViewState中存储不属于控件层次结构的对象的最后一点。
protected override object SaveViewState()
{
if (startAddr != "")
{
ViewState["startAddress"] = startAddr;
}
return base.SaveViewState();
}
答案 1 :(得分:0)
您不应直接调用SaveViewState方法。
检查页面中的EnableViewState是否设置为true。并检查是否真的分配了ViewState。
答案 2 :(得分:0)
据我所知,
你不需要在viewstate
中存储变量,
如果从网页获取你的值,
当您使用 Ajax 回拨(不确定使用CallBack
或PageMethod
)时,
你可以在不viewstate
的情况下获得价值。
juz将值存储在 JS 变量中。
如果有任何建议或疑惑,请告诉我?
希望它有效!