2012-09-24 102 views
0

在ASP.NET 4.0網站上,我正在研究我有一個母版頁,其中設置了ViewStateMode =「Disabled」。然後,對於網站的這一部分需要ViewState所需的ViewStateMode =「Enabled」的網站的一部分,嵌套主頁面。在本節的子頁面上,ViewState不會像DropDownList那樣被控制。ViewStateMode按預期工作

在這些母版頁或子頁面的其他地方沒有其他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" %> 

,我可以得到ViewState的工作,如果我添加ViewStateMode =「已啓用」,以每個控制或周圍的控制面板,但我理解是所有控件都繼承父ViewStateMode設置。

此行爲是否正確或我做錯了什麼?

回答

1

爲了解決這個問題,簡單地改變ContentPlaceHolder控制的ViewStateMode財產

例子:

在母版頁

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

</asp:ContentPlaceHolder> 
+0

這的確解決了這個問題,但爲什麼它不能在PAGE工作或MASTER指令? – johna

+0

我還沒有找到原因。我同意你的看法,嵌套的主控應該能夠將ViewStateMode設置爲它的所有子控件。我不確定這是否是一個錯誤,或者這是否是預期的行爲 – Jupaol