문제

여기에서의 상황:나는 면 라벨의 텍스트를 설정한 다음 즉시 응답입니다.redirect()호출을 다음과 같습니다(이것은 단지 예입니다,하지만 난 그것에 대해 설명합 내의 상황을 정확하게):

aspx:

<asp:Label runat="server" Text="default text" />

코드 뒤로(코드에서 호출 onclick 이벤트):

Label.Text = "foo";
Response.Redirect("Default.aspx");   

페이지를 렌더링할 때,레이 말한"기본"텍스트.나는 무엇을 해야 할 다른가?나의 이해하는 것은 이러한 변경 될 것이 자동으로 수행되지만,분명히지 않는 경우에.감사합니다.

에 약간의 배경,코드김 조각이라고 안에는 메소드의 호출에 따라 onclick 이벤트입니다.그것에 더있지만,나만 포함되어 있는 관심있는 이 문제를 해결합니다.

도움이 되었습니까?

해결책

후디에 당신이 어떤 상태에 관한 정보를 제어합니다.는 경우에 당신은 단순히 원하는 페이지를 새로 고침을 제거 리디렉션합니다.는 코드가 완성된 후 실행하고,페이지를 새로 고침하고 어떤 상태로 유지됩니다.

뒤에서,이 작품이기 때문에 ASP.NET 씁니다 상태 정보의 숨겨진 입력 필드에 페이지입니다.버튼을 클릭하면,양식 게시 ASP.NET 해석 viewstate.귀하의 코드를 실행하고,수정하의 상태 및 그 후 상태가 다시 작성하여 이 숨겨진 분야 그리고 사이클이 계속 을 변경할 때까지없이 페이지에 게시.이것은 일어날 수 있을 때 클릭하면 하이퍼링크,다른 페이지를 통해 또는 반응이다.Redirect(),지시하는 브라우저에 따라 지정된 url 이 있습니다.

다른 팁

A Response.Redirect 전화할 것이 요구하는 사용자의 브라우저로드 페이지에서 지정한 URL 습니다.기 때문에 이은 새로운 요청이 당신의 페이지에 대한 페이지를 활용하여 텍스트가 포함되어 있는 태그에서(내가 가는 레이블 텍스트가 설정되는 내부 버튼을 처리기 또는 이와 유사한).

을 제거하는 경우 Response.Redirect 전화는 당신의 페이지를 작동해야하고 있습니다.

ASP ASP.Net 은 본질적으로 무지 않는 상태이 명시적으로 지정되어 있습니다.일반적으로 다시 게시 간 정보의 가치를 상표에 포함된 viewstate,하지만 당신은 페이지를 변경하는 viewstate 손실이기 때문에 저장되었에 숨겨진 분야에 페이지입니다.

하려면 가치를 유지하는 상표의 사이에 당신을 호출해야 하나를 사용하의 국가 메커니즘(예:세션 환경 설정)또는 통신 시스템(요청은(GET,POST)).

또한 당신이 찾고있는 서버입니다.전송되는 변화는 사람은 처리 페이지고 있습니다.응답입니다.리다이렉션이 설계하는 도랑을 당신의 현재 상황에서 대부분의 경우입니다.

상태를 유지하는,사용이 서버입니다.전송신의 반응이다.리디렉션합니다.

경우에 따라서,내가 응답할 수 있습니다 나 자신의 질문(에 따라 자주 묻는 질문,그의 권),짧은 대답입니다,당신은하지 않는 지속 보기를 통해 상태를 리디렉션합니다.뷰 상태에 대한 포스트백,지 않을 리디렉션합니다.

보너스: 모든 것이 당신에 대해 알아 보기 상태에서 ASP.NET, 사진과 함께!

For what it's worth(과 희망 그것은 가치가있),제 6 장의 Pro ASP.NET 3.5C#2008,Second Edition 훌륭한 리소스 확인할 수 있게 되었습니다.전체 예약에는 좋은 되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top