在我正在研究的ASP.NET 4.0网站上,我有一个母版页,我在其中设置了ViewStateMode =“Disabled”。然后,站点的一个部分有一个嵌套的母版页,其中ViewStateMode =“Enabled”,因为该部分网站需要ViewState。在此部分的子页面上,不会为DropDownList等控件维护ViewState。
这些母版页或子页面上的其他任何位置都没有其他ViewState指令。
母版页:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="Internet.Site" ViewStateMode="Disabled" %>
嵌套母版页:
<%@ Master Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Tvet.master.cs" Inherits="Internet.Tvet.Tvet" ViewStateMode="Enabled" %>
如果我将ViewStateMode =“Enabled”添加到每个控件或控件周围的面板,我可以使ViewState工作,但我的理解是所有控件都继承父ViewStateMode设置。
这种行为是正确的还是我做错了什么?
答案 0 :(得分:1)
要解决此问题,只需更改ViewStateMode
控件的ContentPlaceHolder
属性
示例:
在母版页
中<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" ViewStateMode="Enabled">
</asp:ContentPlaceHolder>