0

私が取り組んでいる ASP.NET 4.0 Web サイトには、ViewStateMode="Disabled" を設定したマスター ページがあります。次に、サイトの 1 つのセクションのネストされたマスター ページがあり、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 設定を継承します。

この動作は正しいですか、それとも何か間違っていますか?

4

1 に答える 1

1

それを修正するには、コントロールのViewStateModeプロパティを変更するだけですContentPlaceHolder

例:

マスターページ内

<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" ViewStateMode="Enabled">

</asp:ContentPlaceHolder>
于 2012-09-24T01:12:59.577 に答える