我有一个母版页和一个子页(使用母版页的页面)。
我有一个从子页面调用的类/函数(像这样):
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"%>
为什么变量不保持我设置的值?