다음 코드가 있습니다. 페이지로드 중에 데이터베이스에서 고객 오브젝트를 가져옵니다. 그 후 다른 메소드에서 동일한 객체에 액세스하려고하면 객체가 비어있는 상태로 나옵니다. Student 객체가 firstName, lastName 등과 같은 속성을 가지고 있다고 가정합니다.개체가 null이되지 않도록 어떻게?
Public class Test
Public oStudent as Student
Public Sub Page_Load(ByVal sender as Object, ByVal e as System.EventArgs) Handles Me.Load
oStudent = getStudent(22) 'This is just a sample. This is not my actual database.
End Sub
Public Sub Update(ByVal sender as Object, ByVal e as System.EventArgs) Handles crtlStudent.Update
Update(oStudent)'This one updates makes a database call to update the studnet
End Sub
End class
페이지가로드되면 학생은 데이터베이스에서 올바르게 반환됩니다. 그러나 업데이트 방법을 사용 중일 때 oStudent 객체는 null/empty가됩니다. 이것이 페이지 수명주기가 작동하는 방식입니까? 그렇다면 세션에 oStudent를 저장하거나 올바르게 캐시해야합니까? 다른 방법으로 oStudent가 세션 변수를 사용하거나 캐싱을 통해 null이되지 않도록 할 수 있습니까?
웹 비 저장입니다. 주제에 대한 연구를 해보십시오. 내 취향에 대해 여러 번 논의했습니다. 실제로 일어나는 일을 이해하기 위해 MVC로 전환하는 것을 고려해보십시오. – walther
이러한 경우 나는 단지 '속임수'로 값을 보유하기 위해 양식의 숨겨진 요소를 사용합니다. 즉, 다시 게시하는 동안 viewstate에서 유지 관리됩니다. 변수는 포스트 백이 끝나면 항상 값을 잃습니다. – Zack