Я сохранил объект в viewstate на странице. Теперь, когда я обращаюсь к одному и тому же объекту viewat на usercontrol, он отображается как null. Я даже попытался создать одно и то же представление с таким же именем в usercontrol и page.Both имеет другое значение.
Я понимаю, что viewstate является защищенным свойством. Как эта вещь реализуется в вышеупомянутом scenerio или есть какая-либо другая причина такого поведения.
Edit:
Пользовательский элемент управления находится в разметке страницы. Я не загружаю его динамически.
У меня есть страница EditFacilityworkType.aspx. На странице У меня есть usercontrol FacilityWorkTypeDetails.aspx(FacilityWorkTypeDetails1). Внутри этого usercontrol у меня есть пользовательский элемент управления Workflow.aspx(Workflow1)
Страница_Load() страницы Я забираю workflowdetails на page_load() страницы.
FacilityWorktype facilityWorkType = facilityDetails.GetFacilityWorktypeDetail(SessionHelper.FacilityWorkTypeID);
ViewState["WorkFlow"] = facilityWorkType.FacilityWorkTypeWorkFlow
Внутри usercontrol FacilityWorkTypeDetails.aspx. У меня есть свойство
public FacilityWorktype FacilityWorkTypeDetails
{
get
{
#region Fill FacilityWorktype
return GetEntityFromControl();
#endregion
}
set
{
PopulateControls(value);
}
}
Теперь я устанавливаю это свойство в загрузке страницы страницы
FacilityWorkTypeDetails1.FacilityWorkTypeDetails = facilityWorkType;
Внутри Workflow.aspx у меня есть свойство
/// <summary>
/// Property to fill entity object from controls on this page
/// </summary>
public WorkFlow WorkFlowDetails
{
get
{
return GetEntityFromControls();
}
set
{
BindTranscriptionMethodDDL(ddlTranscMethod);
PopulateControls(value);
}
}
Теперь PopulateControls() из FacilityWorkTypeDetails1, я устанавливаю свойство workflow1
private void PopulateControls (значение FacilityWorktype) {
Workflow1.WorkFlowDetails = value.FacilityWorkTypeWorkFlow;
}
Теперь, когда я извлекаю значения из
private WorkFlow GetEntityFromControls()
{
WorkFlow workFlow = (ViewState["WorkFlow"] as WorkFlow) ?? new WorkFlow();
//workFlow is null
}
Итак, теперь внутри этой функции workFlow имеет значение null. Я хочу спросить, почему это null, когда я установил viewstate на странице.