解决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" %>
欢迎大家多多交流