0
我有一个母版页和一个子页面(页面使用母版页)。ASP.NET主页变量设置/访问
我有我从孩子页面(像这样)调用类/功能:
new MasterPageSiteWide().setGeoAndLanguage(ViewState["_country"].ToString(), _lang);
这调用函数(如当我一步通过它执行值)。
在母版页,我有:
public partial class MasterPageSiteWide : System.Web.UI.MasterPage
{
public string _closeTimeType;
public string _langForCalendar;
public void setGeoAndLanguage(string nation, string lang)
{
string globalresourcestring = string.Empty;
_langForCalendar = (String)GetGlobalResourceObject("share", "lblCalendarLang");
switch (nation.ToUpper())
{
case "USA":
ViewState["geo"] = "USA";
ViewState["langID"] = 1;
_closeTimeType = "PTPA";
break;
case "CAN":
if (lang.ToUpper() == "FR")
{
ViewState["geo"] = "CAN";
ViewState["langID"] = 2;
_closeTimeType = "CANPA";
}
else
{
ViewState["geo"] = "CAN";
ViewState["langID"] = 1;
_closeTimeType = "CANPA";
}
break;
case "MEX":
ViewState["geo"] = "MEX";
ViewState["langID"] = 3;
_closeTimeType = "MEXPA";
break;
default:
ViewState["geo"] = "USA";
ViewState["langID"] = 1;
_closeTimeType = "PTPA";
break;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
当通过它的代码步骤设置变量_closeTimeType
和_langForClaendar
(我能看到的值)。
但是当它回到子页面时,这些值是null
。我访问他们像这样:
Master._closeTimeType
另外,ViewState
变量null
母版页加载后。
注:我确实有.aspx
页面上这一行:
<%@ MasterType virtualPath="~/MasterPageSiteWide.master"%>
为什么变量没有跟上我设置值是多少?
这对常规变量(YEA)有效,但对于母版页上函数中的ViewState变量设置它,但是当函数调用完成时,viewstate变量在返回主页面时设置为null – Brad 2012-08-16 16:01:54
对setGeoAndLanguage(...)的调用在哪里进行?可能会很长,但您可能需要调用页面的TrackViewState()方法以确保.NET跟踪您添加的ViewState值... – 2012-08-16 18:03:19
为视图状态事物做了一些工作,但是休息工作谢谢! – Brad 2012-08-17 16:19:07