2011-01-25 3 views
0

조건에 집착했습니다. 페이지간에 값을 공유해야합니다. 거의 또는 전혀 자바 스크립트를 통해 Codebehind에서 가치를 공유하고 싶습니다. 나는 이미 여기에 질문이 있지만 JS를 사용하고 있습니다. 아직도 did'nt는 어떤 결과를 얻고 그래서 나는 다른 접근법을 요구하고있다.querystring을 통해 .net Object를 전달할 수 있습니까?

그래서 쿼리 문자열에 .net 개체를 전달할 수 있는지 알고 싶습니다. 그래서 나는 다른 쪽 끝에 편리하게 그것을 unbox 할 수있다.

업데이트

또는 어떤 자바 스크립트 접근 방식은 모달 대화 상자 창에 전달하여이있다. 또는 그런 것.

내가 뭘하고 있던 것은 내가

를하고있는 중이 야 내 부모 페이지로드에 그. 내가 db에서 값을 가져온 내 클래스에서 속성을 추출합니다. Session["mySession"]에 넣으십시오. 이 같은.

Session["mySession"] = myClass.myStatus which is List<int>; 

내 이벤트에서 클라이언트 측의 확인란 이벤트를 클릭하면 팝업이 열립니다. 페이지로드시 목록을 추출하고 하위 페이지의 확인란 목록을 채 웁니다.

여기에서 사용자가 선택 사항을 수정하고이 페이지를 닫을 수 있습니다. Close는 save라는 버튼을 통해 수행되며, 체크 된 항목을 반복하고 Session [ "mySession"]으로 다시 보냅니다.

하지만 문제는 여기에서 다시 라디오 버튼을 클릭하여 업데이트 된 값을 볼 때 이전의 것을 표시합니다. 다시 말해서, 다시 열면 다시 1 대신 3이 표시됩니다.

+0

개체가 얼마나 복잡합니까? – ChaosPandion

+0

나는 합격해야한다 List

답변

3

나는 것 때문에 이런 일.

var stringNumbers = intNumbers.Select(i => i.ToString()).ToArray(); 
var qsValue = string.Join(",", stringNumbers); 

Request.Redirect("Page.aspx?numbers=" + sqValue); 

숫자가 너무 많으면 검색어가 최적의 옵션이 아닙니다. 또한 누구나 쿼리 문자열을 볼 수 있으므로이 데이터가 안전해야 쿼리 문자열을 사용하지 않아야합니다. 다른 포스터의 제안을 염두에 두십시오.

당신이 사용하는 경우.NET 4 위의 코드를 단순화 할 수 있습니다 :

var qsValue = string.Join(",", intNumbers); 
+0

+1은 저를 때렸습니다. 멋진 솔루션 – naveen

+0

고마워, 내 마음에 반영된 동일한 솔루션. 그러나 제한의 becoz, 나는 피하고 있었다. 내 목록은 최대 5 ~ 10 개의 값을 가지므로 작동한다고 생각합니다. –

4

네,하지만 그 값을 직렬화해야합니다. 그것은 문자열로 인코딩 될 수 있습니다. URL보다 put the object in session에 훨씬 더 나은 접근 방법이 있다고 생각합니다.

+0

나는 세션의 접근 방식을 취했다. 그러나 그것은 나를 위해 악마가되었다. 세션 값이 제대로 업데이트되지 않고 오래된 값을 얻을 때마다 새 세션으로 기존 세션을 업데이트합니다. –

+0

제대로 사용하면 세션이 좋은 것입니다. 오류가 발생하면 자세히 설명해 주시면 해결하도록 도와 드리겠습니다. 쿼리 문자열에 이러한 일을 전달하는 것은 훨씬 더 위험합니다. –

+0

세션에는 여러 가지 용도가 있지만 대부분의 경우 전염병처럼 그들을 피하려고합니다. 최종 사용자의 관점에서 세션 시간 초과 및 작업 손실은 끔찍한 경험입니다. –

0

개체를 serialize 가능하게 만들고 out-of-process 세션에 저장합니다.

웹 응용 프로그램의 모든 페이지에서 개체에 액세스 할 수 있습니다.

0
+0

나는 한동안이 제한에 대해 숙고 해왔다. 웹 요청이 응용 프로그램과 서비스간에 이루어진 경우 (예 : 브라우저가 필요 없음) - 중요합니까? – Sinaesthetic

+0

@Sinaesthetic, IIS/Apache/other의 문서를 확인 하겠지만 제한은 서버 수준 일 수 있습니다. – Fredou

+0

예. 단지 정보를 위해서, 이것은 내가 발견 한 것입니다 : http://www.boutell.com/newfaq/misc/urllength.html – Sinaesthetic

-1

나는 아마도 객체를 저장하기 위해 쿠키를 사용할 것입니다.

+0

사용자가 쿠키를 사용하지 않도록 설정 한 경우 ??????? –

+0

응용 프로그램에 따라 오류 메시지를 인쇄 할 수 있습니다. 많은 쿠키를 비활성화 할 수 없으며 좋아하는 이메일도받을 수 없습니다! – rakkc

관련 문제