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