문제

제출 버튼이있는 asp.net2.0 웹 페이지가 있습니다. 사용자가 클릭하면 즉시 XML 파일을 생성하여 결과적으로 반환합니다.

코드는 다음과 같습니다.

protected void submitBtn_Click(object sender, EventArgs e)
    {
        string result = this.ProduceMyXmlResult();

        this.Response.Clear();
        this.Response.StatusCode = 200;
        this.Response.ContentType = "application/xml";
        this.Response.ContentEncoding = System.Text.Encoding.UTF8;
        this.Response.Write(result);
        this.Response.End();
    }

코드는 내가 원하는 것을 정확하게 수행합니다. 그러나 브라우저는 XML 파일을 새 페이지로 인식하지 않으므로 뒤로 버튼이 원래 페이지로 돌아 가지 않습니다. 왜 그리고 어떻게 그것을 극복 할 수 있습니까?

도움이 되었습니까?

해결책

가장 간단한 방법은 Page_load () 에서이 코드를 실행하는 별도의 페이지를 만들고 버튼을 누르면 리디렉션하는 것입니다.

뒤로 탐색이없는 이유는 브라우저가 페이지가 변경되었다고 알지 못하기 때문입니다. 제출 버튼이 Postback을 미리 형성하고 해당 Postback에 대한 응답으로 XML 데이터를 반환하고 있으므로, 이것은 현재 페이지의 변환 인 것처럼 브라우저에 나타납니다 (예를 들어, 마찬가지로 변경 한 것처럼 변경되었습니다. 레이블 컨트롤의 텍스트).

이를 달성하는 "올바른"방법은 일부 유형의 HTTP 핸들러와 함께있을 것이지만, 적절한 방법을 제안하는 경험은 없었으며 이미이 방법에 대해 C# 코드-홀드를 작동 시켰습니다.

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