답변
ASP.NET은 상태 비 저장이므로 상태를 포스트 백에서 포스트 백으로 유지하지 않습니다. 사용자를 viewstate, 세션 또는 응용 프로그램에 저장하여 포스트 백 포스트 백에서 볼 수 있습니다.
#region UserName
public string UserName
{
get
{
if (this.ViewState["UserName"] == null)
return string.Empty;
return (string)this.ViewState["UserName"];
}
set { this.ViewState["UserName"] = value; }
}
#endregion
당신도 버튼 클릭 이벤트와 같은 "간단한"것들에 대한 어떤 포스트 백을 할 때마다, 당신은 페이지 클래스의 새로운 인스턴스으로 노력하고 있습니다. That 's ASP.Net 101.
새 페이지로 리디렉션하거나 새 쿼리 문자열로 페이지를로드하면 다시 게시되지 않습니다. 쿼리 문자열을 사용하여 페이지에서 버튼 클릭 이벤트를 처리하는 경우 이는 포스트 백이되고 쿼리 문자열은 포스트 백 http 요청과 함께 전송됩니다. 어쨌든, 그것은 여전히 페이지 클래스의 새로운 인스턴스입니다. –
보호 대 개인에 관한 내 대답을 찾지 못했습니다. – anonymous
사용자 이름 필드를 private 또는 protected로 선언하면이 상황이 발생하지 않습니다. protected/private만이 클래스 외부의 변수 또는 상속 된 멤버에 대한 액세스 가능성입니다.
저는 이것이 수명주기 문제 일 가능성이 높다고 생각합니다.
처음으로이 페이지를 탐색 할 때 쿼리 문자열이 요청에 대해 설정된 경우 사용자 이름은 값만 갖습니다. 따라서 "/TeacherControlPanel.aspx"에는 값이없는 사용자 이름이 있지만 "/TeacherControlPanel.aspx?username=SomeUserName"이됩니다. 이러한 경우 필드 username은 값이 설정되어있는 경우에만 값을 가지게됩니다. 그리고 쿼리 문자열이 설정되지 않은 경우 페이지에서 버튼 클릭 이벤트를 처리하면로드가 실행되고 쿼리 문자열이 설정되지 않으면 사용자 이름이 null이됩니다. 따라서 click 이벤트에 리디렉션 문자열에 추가 할 내용이 없습니다.
귀하의 응용 프로그램에서 TeacherControlPanel.aspx를 사용하려면 어떤 탐색 경로를 사용하고 있습니까?
또한 보호 된 필드는 개인 필드가 아닌 반면 페이지 (TeacherControlPanel.aspx, <% %> 문)에 표시됩니다. – Kobi
- 1. ASP.NET MVC3 게시 양식 다시 같은 동작
- 2. 분할 필드는 다음과 같습니다
- 3. ASP.NET 데이터 바인딩 다시 게시
- 4. 나는 다음과 같은 코드를 가지고
- 5. 클릭하면, 다음과 같은 코드를 가지고
- 6. 어떻게 다음과 같은 자바 스크립트 코드를 작성했습니다
- 7. JPA 상속과 나는 다음과 같은 코드를 작성했습니다
- 8. 앵커 onclick을 asp.net 다시 게시
- 9. 같은 클래스의 비공개 멤버에 대한 포인터를 취하는 private 멤버 함수
- 10. ASP.NET 부분적인 다시 게시 문제
- 11. C++ static 멤버 함수에서 private 멤버 변수를 변경하십시오.
- 12. 큐 asp.net UpdatePanel 다시 게시
- 13. asp.net 회원 내가 내 컨트롤러에 다음과 같은 코드를 많이 가지고
- 14. 벡터에서 객체의 private 멤버 검색 및 편집
- 15. ASP.NET MVC 게시 날짜 필드는 1/1/0001이됩니다.
- 16. 구조는 다음과 같은 코드를 감안할 때
- 17. 내가 codeblocks에서 다음과 같은 구조로 코드를 컴파일하려고
- 18. C#을 나는 다음과 같은 코드를 반영
- 19. 나는 다음과 같은 코드를 작성하려고 매크로
- 20. VBA의 나는 다음과 같은 코드를 엑셀
- 21. Excel에서 나는 다음과 같은 코드를 실행하려고
- 22. 나는 다음과 같은 코드를 웹 서비스를 만든
- 23. SharedPreferences.Editor.apply 힘이 나는 다음과 같은 코드를 사용하고
- 24. 나는 다음과 같은 C 코드를 시도했다 루프
- 25. 수없는 나는 다음과 같은 코드를 사용하고
- 26. 나는 다음과 같은 코드를 컴파일 문제가 GCC
- 27. 이상한 오류가 나는 다음과 같은 코드를 가지고
- 28. 테스트 shared_ptr을 나는 다음과 같은 코드를 한
- 29. 다음과 같은 다시 쓰기 규칙에서 "태그"제거 :
- 30. 다시 같은 asp.net 응용 프로그램을 다시 작성하십시오
코드가 작성된 것처럼 작동한다고하지만 사용자 이름을 개인 변수로 변경하면 실패합니까? –
null 또는 string.Empty로 초기화됩니까? – Martin
@Martin, null입니다. – anonymous