asp.net – 什么时候应该在服务器控件上启用EnableViewState?
当在服务器控件上启用视图状态时,是否有任何指南或规则?当它不应该?
我在看这个 <asp:Label ID="ErrorMessageLabel" EnableViewState="false" runat="server" /> 为什么在标签控件上未启用EnableViewState?我知道启用视图状态带有一些开销,所以我想使用它,只有当它需要的时候。 解决方法
这里有一个好的经验法则:如果你(1)改变代码隐藏中的属性值,(2)需要知道你在后面的回发中设置了什么值,而不需要重新计算值,那么你需要使用ViewState。
例如。在我的页面的标记我可能有一个Label控件指定像这样: <asp:Label ID="TitleLabel" runat="server" Text="Update this Employee" /> 然后在Page_Load事件中我有这个代码: If Not IsPostBack AndAlso myEmployeeObject.IsNew Then TitleLabel.Text = "Create a new Employee" 通过改变Text属性的值,我在ViewState中引入了一个新的元素。如果在任何后续的PostBack期间获取Label的Text属性的值,该值将是“Create a new Employee”。 这是我做什么,当我出发,以尽量减少我的页面使用的ViewState的量。我enable tracing在页面上。当在浏览器中呈现时,跟踪输出将添加到页面的底部。跟踪输出标识您的页面上的每个单一服务器控件,并包括每个控件存储多少ViewState(以字节为单位测量)。我使用这些信息来计算何时我想交换ViewState的开销重新计算值的开销。 在我的前一个示例中,我将选择重新计算每个PostBack上的Label的Text属性,并停止在ViewState中存储Text属性。这是我更新的标记的外观: <asp:Label ID="TitleLabel" runat="server" Text="Update this Employee" EnableViewState="false" /> 和我更新的Page_Load事件: If myEmployeeObject.IsNew Then TitleLabel.Text = "Create a new Employee" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Visual Studio 2012不发布项目
- asp.net-mvc-3 – 实体框架乐观并发异常未发生
- asp.net – 拒绝访问端口“COM1”
- asp.net-mvc – ASP .NET MVC RedirectoToAction忽略所在的
- asp.net-mvc-3 – 在Razor / MVC3中使用@ Html.ActionLink获
- asp.net-mvc – 使用AD的ASP.NET MVC表单Auth在本地工作但在
- c#初学-多线程中lock用法的经典实例
- asp.net – 和debug =“false”有什么区别?
- asp.net – 在Page_Load之前处理事件
- asp.net-mvc – ASP.NET MVC – 如何重定向安全?
- asp.net-mvc-4 – 使用Bootstrap创建数据验证错误
- asp.net – 如何在web.config中设置text / html的
- asp.net-mvc – Html.EditorFor忽略我指定的类
- ML.NET技术研究系列-1入门篇
- asp.net-mvc-3 – 如何在web.config中设置不同的
- ASP.net – 多个上传与jQuery多文件上传插件
- asp.net-mvc-3 – 滚动我自己的@ Html.BeginfBrm
- asp.net-mvc – 在ASP.NET MVC 2中模板化Html.Di
- asp.net-mvc – MVC应用程序调试错误:viewstate
- asp.net-mvc – 命名约定 – 控制器的一个规则,没