2012-12-11 2 views
2

단일 aspx 페이지에서 다른 aspx 파일에 내용을 결합하거나 가져올 수 있습니까? 그러나, aspx as ascx, 따라서 사용자 정의 컨트롤을 변환하지 않고 그것을 달성하고 싶습니다.여러 asp.net 페이지를 단일 페이지로 결합

참고 : 자바 스크립트 또는 Jquery와 같은 클라이언트 측 스크립팅을 사용하고 있습니다. 그리고 아니요, 이것은 중복되지 않습니다 of.

편집 : 비록 이것이 나쁜 디자인 아이디어처럼 보이지만, 이것은 내가 원하는 기능입니다. 모든 페이지는 모든 개별 CSS와 자바 스크립트가 내려다 보이는 한 페이지의 내용이되어야합니다.

답변

3

짧은 대답은 당신이 그렇게 할 수 없다는 것과 당신이해야 할 지점에 도달했다면, 당신은 당신의 페이지에 나쁜 디자인을 가지고 있다는 것입니다. 왜? 전체 페이지에는 콘텐츠뿐만 아니라 CSS, 자바 스크립트, 제목, 헤더 등이 포함되어 있으므로 고유하고 자바 스크립트 및 CSS 충돌과 같은 다른 문제가있는 다른 페이지와 혼합 할 수 없습니다. 예를 들면. 페이지의 최종 제목은 무엇입니까? 및 기타. 당신이

대안은 다음과 같습니다

  • iframe's
  • 코드의 사용의 사용은 뒤에 동적 페이지를 렌더링하고 자리 표시 자에 추가합니다.
2

HTML frameset을 사용하면 페이지를 별도의 프레임으로 나눌 수 있으며 각 페이지는 원본으로 ASPX 페이지를 가질 수 있습니다.

+0

에 텍스트를 추가, 한 페이지에 모든 결과를 추가 HTML5에서 지원됩니다. –

+0

@KeyBrdBasher 맞지만 프레임 렌더링은 [정의]되어 있습니다 (http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#frames-and-framesets) for HTML5이므로 모든 최신 브라우저에서 작동 할 것으로 기대합니다. –

0

Aristos 및 michielvoo가 제안한 것 이외의 다른 방법은 JQuery .load() 메서드를 사용하는 것입니다. 페이지에 대한 다른 콘텐츠 소유자를 표시하고 JQuery 선택기를 사용하여 해당 페이지의 HTML 콘텐츠를 콘텐츠 소유자로 설정합니다.

Acc. JQuery와 문서

이 방법은 .load 검출되는 server.When에서 성공적인 응답 데이터를 페치하는 가장 간단한 방법() 리턴 데이터에 정합 소자의 HTML 콘텐츠를 설정한다.

$('#result').load('ajax/test.html'); 
+1

.load 메서드는 asp.net 숨김 필드를 포함한 모든 HTML을로드합니다. 뷰 상태의 값을 포함합니다. 그리고 이름이 _hidded 인 복수의 숨겨진 필드가 있으므로 페이지가 깨질 수 있습니다 –

+0

동의!프레임을 사용하는 동안 발생하지 않는 Css 충돌로 이어지기는하지만 그럼에도 불구하고 이것 역시 목적을 달성하는 한 가지 방법입니다 (완벽하지는 않지만 방법). –

+0

이 충돌을 제거하는 한 가지 방법은 css와 스크립트를 기본 페이지에 넣는 것입니다. Crete는 div와 같은 컨테이너이며 div 만로드합니다. 다음과 같이 $ ('# result'). load ('ajax/test.html #container'); –

0

당신은 단순히 서로에 페이지를 추가 할 수 있습니다, 나는 전국 크레이그리스트 검색에 대해이 작업을 수행합니다.

그때 나는

당신은 목록 상자를 사용하여 브라우저, 브라우저 컨트롤에서 해당 페이지를 보려면, 다음 태그가없는 하나의 파일