【发布时间】:2019-03-22 02:42:06
【问题描述】:
我有这样写的属性(在 ASP.NET 网络表单中):
public string QuickSearchText
{
get
{
string value = (string)ViewState["QuickSearchText"];
return ((value == null) ? string.Empty : value);
}
set
{
ViewState["QuickSearchText"] = value;
}
}
如果我像这样在 Web.config 中关闭 viestate:
<pages enableViewState="false" />
我的财产仍然有效。
所以我需要知道,我在ViewState["QuickSearchText"] 中输入的这个值存储在哪里?
【问题讨论】:
-
您正在处理哪种类型的项目?是 ASP.NET 还是 MVC 5?
-
你用什么代码来测试这个?
-
是 ASP.NET webforms 代码
-
我不清楚你是如何得出“属性仍然有效”的结论的。也许您不是在使用回发进行测试,而只是在 one 页面生命周期中进行测试?另请参阅,the implementation of
ViewState根本不检查启用,nor does the indexer/Add()。 -
@Earlgray
ViewState["QuickSearchText"] = value;基本上是“添加或更新”。如果 ViewState 字典尚不存在,它将只在 ViewState 字典中创建键值对。很有可能在回发后该值不存在,最好的找出方法是使用您的调试器并查看回发后实际存在的内容。
标签: c# asp.net webforms viewstate