2009-08-01 5 views
0

page1.aspx에서 내 서버 쪽에서 buttonOnClick 이벤트에 연결된 단추가 있습니다. 버튼을 클릭하면 buttonOnClick 메서드가 실행됩니다.이 메서드는 새 페이지를 구성하는 데 사용할 데이터로 buttonOnclick 메서드에 로컬 인 객체를 생성합니다.ASP.NET의 한 페이지에서 다른 페이지로 개체 전달

기본적으로 새 탭에서 새 페이지 (page2.aspx)를 열고 싶지만이 페이지가로드 될 때 buttonOnClick 중에 생성 된 개체의 내용을 기반으로 렌더링하려고합니다.

어떻게 적절하게 갈 수 있습니까? 지금까지는 URL 인수를 새 팝업 (page2.aspx)에 전달하고 객체를 생성했습니다.하지만이 작업을 올바르게 수행하고 buttonOnclick을 생성 한 다음 page2.aspx를 팝업 기반으로로드합니다. buttonOnclick 메서드로 작성된 객체

+0

Page1.aspx와 page2.aspx는 모두 동일한 서버에서 실행됩니다. (그들은 심지어 같은 폴더에 있습니다 :-)) – Matt

+0

매트, 추가 정보로 질문을 편집하십시오. 주석을 추가하지 마십시오. –

+0

작은 점 : 이것은 IIS와 전혀 관련이 없습니다. 또한 "ASP"가 아니라 "ASP.NET"입니다. 실제 ASP 페이지를 만들고 유지해야하는 사람들이 여전히 있습니다. 우리는 "Classic ASP"라고 불렀습니다. –

답변

3

첫 번째 페이지에서 세션에 개체를 저장 한 다음 두 번째 페이지에서 개체를 검색하십시오. 첫 번째 페이지에서

:


Session["myobject"] = myObject; 

초 페이지 :


MyObject object = (MyObject) Session["myobject"]; 
+0

젠장, 그거 쉽지! :-) – Matt

1

사용자의 세션에서 개체를 저장하는 것이 가장 쉬운 것.

Session["myObject"] = myObject; 

그것을 얻으려면, 당신은 세션 캐시는 단순히 객체의 해시 테이블이기 때문에, MyObject를의 형태로 다시 캐스팅해야합니다.

if (Session["myObject"] != null) 
{ 
    MyObject myobj = (MyObject)Session["myObject"]; 
} 

이렇게하면 두 페이지에서 모두 액세스 할 수 있습니다. 일반적으로 여러 페이지가 Session의 동일한 객체에 액세스하는 경우 일반적으로 세션 키의 이름을 중앙 위치에 저장하므로 변경하기 전에 한 번만 업데이트하면됩니다. 일반적으로 내 응용 프로그램에 리소스 파일을 추가하고 속성 폴더에 넣어, 그래서 그것을 이런 식으로 사용할 수 있습니다

string key = WebApplication1.Properties.MyObjectSessionKey; 
Session[key] = myObject; 
0

를 사용하여 세션 상태 또는 데이터베이스에 객체를 저장하고 두 번째 페이지에 ID를 전달 . 객체는이를 위해 직렬화가 가능해야합니다.

관련 문제