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

Posted Mr石昊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决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" %>

 

以上是关于解决webconfig中禁用掉ViewState造成服务器控件回传获取不到值问题的主要内容,如果未能解决你的问题,请参考以下文章

C# viewstate

asp.net服务器控件的视图状态viewstate

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=&quo

当 Control 变为 Enable=False 时 ASP.Net ViewState 不起作用

asp.net服务器控件刷新无法保存住值怎么解决?

ViewState提交后丢失,竟然是OnInit搞的鬼