在我正在处理的 ASP.NET 4.0 网站上,我有一个母版页,其中设置了 ViewStateMode="Disabled"。然后,站点的一个部分有一个嵌套母版页,其中 ViewStateMode="Enabled" as 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 设置。
这种行为是正确的还是我做错了什么?