You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:10:36