VS2017创建的ASP.NET4.7网站如何为单个页面启用ViewState?
嘿,我来帮你搞定这个ViewState的例外配置问题!你已经在web.config全局禁用了ViewState,现在要单独给某个页面开绿灯对吧?我整理了两种靠谱的解决方案,你可以按需选择:
方法1:通过web.config的location节点精准配置
你之前可能是location节点的路径或者配置结构没写对,正确的写法应该是这样的:
在根目录的web.config文件中,找到<configuration>根节点,在它的末尾(不要嵌套在原有的<system.web>里面)添加这段配置,记得把path的值替换成你需要启用ViewState的页面路径:
<location path="NeedViewState.aspx"> <system.web> <pages enableViewState="true" /> </system.web> </location>
举个例子:如果你的页面在子文件夹Admin下,路径就是Admin/NeedViewState.aspx;如果是根目录的页面,直接写页面文件名就行。这个配置会覆盖全局的禁用规则,只对指定页面生效。
方法2:直接在目标页面的指令中配置
这种方法更直接,也不容易出错,不需要修改web.config,直接在目标页面顶部的@Page指令里加上EnableViewState="true"属性即可:
<%@ Page Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="NeedViewState.aspx.cs" Inherits="YourNamespace.NeedViewState" EnableViewState="true" %>
因为页面级的配置优先级高于web.config的全局配置,所以就算全局禁用了ViewState,这个页面的ViewState也会正常启用。
小提示
如果你的母版页里有个别控件需要保留ViewState,也可以单独给这些控件设置EnableViewState="true",不过根据你的需求,上面两种方法完全能解决问题啦。
内容的提问来源于stack exchange,提问作者John Ohara
相关产品推荐
相关产品推荐

