解决webconfig中禁用掉ViewState造成服务器控件回传获取不到值问题

前言:有些asp.net站点,为了避免ViewState生成的冗余代码,会选择在webconfig中禁用掉ViewState,如下

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.7.2"/>
    <httpRuntime targetFramework="4.7.2"/>
    <pages clientIDMode="Static" enableViewState="false"></pages>
  </system.web>

那么,有些依赖ViewState回传的服务器控件,如CheckBoxList,页面提交会有获取不到值得情况,下面给出解决方法

情况1:如果依赖母版页,母版页要启用enableViewState

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebApplication11.Site1" EnableViewState="true" %>

子页面也要启用

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="WebApplication11.WebForm2" EnableViewState="true" %>

情况2:子页面如果不依赖母版页,直接启用就可以获取服务器控件回传得值

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication11.WebForm1" EnableViewState="true" %>
原文地址:https://www.cnblogs.com/shihao316558512/p/13086401.html