我为我的网站创建了两个母版页。一个用于正常使用,另一个用于打印。在我的普通母版页上,我有一个设置Session['P']
为'1'
. 在打印母版页上,我有另一个按钮设置Session['P']
为'0'
. 在我的 Global.asax.pas 中,我有以下代码来确定要使用哪个母版页:
method Global.page_PreInit(sender: System.Object; e: EventArgs);
begin
var p: System.Web.UI.Page := System.Web.UI.Page(self.Context.Handler);
if p <> nil then
if Session['P'].ToString = '1' then
p.MasterPageFile := '~/Print.Master'
else
p.MasterPageFile := '~/Site.Master';
end;
设置后Session['P']
,我需要重新加载页面以使其主人更改。我需要保留所有控件的视图状态,因此不能使用Response.Redirect()
. 我尝试使用Server.Transfer(Request.Url.AbsolutePath, True);
,但它引发了以下异常。我该如何解决它?
无法加载视图状态。正在加载视图状态的控制树必须与在先前请求期间用于保存视图状态的控制树匹配。例如,当动态添加控件时,回发期间添加的控件必须与初始请求期间添加的控件的类型和位置相匹配。