2009-03-04 3 views
3

시나리오 : 내 모든 페이지에 대해 꽤 표준적인 마스터 페이지가 있습니다. 여기에는 각 페이지에서 추출 할 수있는 일반적인 로그인 양식 및 기타 동적 목록이 포함됩니다. Webdesigners는 이미 각 페이지의 중앙 콘텐츠 자리 표시자를 수정할 수 있습니다. 하지만 여전히 마스터 페이지의 디자인과 레이아웃은 여전히 ​​내 프로젝트에 있으며 디자인 수정은 Visual Studio에서하고 프로젝트를 다시 컴파일하고 다시 배포해야합니다.디자이너를 위해 ASP.NET .NET 마스터 페이지를 쉽게 편집하려면 어떻게합니까?

CMS를 통해 마스터 페이지를 거의 완벽하게 액세스 할 수있는 가장 좋은 방법은 무엇입니까? 내가 식별 할 수있는 문제 중 일부는 동적 목록 또는 로그인 양식과 같은 특정 컨트롤을 포함하는 것입니다.

감사합니다.

답변

0

디자이너가 편집을 허용해야하는 영역 대신 마스터 페이지에 자리 표시자를 넣을 수 있습니까? 마스터 페이지는 Visual Studio에서만 편집 할 수 있으므로이 시점에서는 마스터 페이지가 유일한 실현 가능한 옵션 일 수 있습니다. 이 접근법의 한 가지 문제점은 자리 표시 자에 넣은 내용이 유효하지 않을 가능성이 높다는 것입니다. 왜냐하면 태그를 한 자리 표시 자에 열려 있고 다른 위치 표시 자에서 닫았을 수 있기 때문입니다.

<html> 
<head> 
<title></title> 
<asp:PlaceHolder ID="headerContent" runat="server"></asp:PlaceHolder> 
</head> 
<body> 

<asp:PlaceHolder ID="beforeContent" runat="server"></asp:PlaceHolder> 

<asp:PlaceHolder ID="centralContent" runat="server"></asp:PlaceHolder> 

<asp:PlaceHolder ID="afterContent" runat="server"></asp:PlaceHolder> 

</body> 
</html> 

(당신이 당신에게 모든 시간을 경고 XHTML 유효성 검사기를 신경 쓰지 않는만큼) 내가 못생긴 건 알지만 그것은 당신에게 당신이 필요로하는 제어 할 수 있습니다. 자리 표시 자에 넣은 내용은 사용자 컨트롤이나 리터럴 컨텐트가 될 수 있지만 동적으로로드해야합니다.

생각하십니까?

편집 : 이것은 작동하지 않습니다. PlaceHolder는 내용을 엉망이게 할 <div> 태그를 렌더링합니다. 어쩌면 PlaceHolder를 확장하고 HTML을 렌더링하는 방법을 재정의 할 수 있습니다.

+0

약간 닮은 솔루션을 구현했습니다. 나는 ASP 대신 ContentPlaceHolder를 사용했다 : PlaceHolder. – mbp

0

음, Web Application Project 페이지는 액세스 할 때까지 컴파일되지 않습니다 (링크는 2005이지만 여전히 적용됨). 이것은 실제 .aspx (및 .ascx 등) 페이지가 원래 상태로 배포되었음을 의미합니다. 디자이너는 서버에서 페이지의 형식을 업데이트 할 수 있으며 누군가 다음 번에 콘텐츠를 요청하면 업데이트가 컴파일됩니다.

디자이너가 현재 페이지를 다운로드하고 웹 사이트의 UI를 통해 대체물을 업로드하는 것은 비교적 쉽습니다. 그러나 매우 안전하지는 않습니다. 디자이너가 웹을 통해 가상 디렉터리에 액세스 할 수있게하면 Expression Web과 같은 도구를 사용하여 가상 디렉터리에 연결할 수 있습니다. 이 방법으로 디자이너는 현재 웹 사이트를 열고 페이지를 편집하고 결과를 직접 프로덕션으로 보낼 수 있습니다 (생각했던 무서운 생각).


정답을 가지고 downvoted가되었으므로 뭔가를 지적하겠습니다.

웹 사이트 프로젝트는 필요에 따라 코드 숨김 및 페이지를 컴파일합니다. 코드를 정기적으로 업데이트해야한다면 괜찮은 해결책입니다.

웹 응용 프로그램 프로젝트를 업데이트 가능하도록 구성 할 수 있습니다. 모든 코드 숨김 및 클래스는 어셈블리로 컴파일되며 모든 aspx, ascx 등의 페이지는 필요에 따라 배포 및 컴파일됩니다. 이는 디자이너가 웹 사이트에 연결하고 레이아웃과 정적 컨텐츠를 업데이트하고 다음 요청시 변경 사항을 볼 수 있음을 의미합니다.

이것은 내가 선호하는 배포 방법입니다. 나는 거기에 야생에서 몇 가지 웹 응용 프로그램 프로젝트를 가지고, 내 dll과 함께 배포 updatable aspx 파일입니다. 웹 사이트 사용자가 업데이트를 제출하지 않아도 UI를 변경할 수 있으므로 사용자를 위해 다시 컴파일 할 수 있습니다.

+0

요청시 컴파일되는 웹 응용 프로그램 프로젝트가 아닌 웹 사이트 프로젝트 – hunter

+0

"실제 .aspx (및 .ascx 등) 페이지가 원래 상태로 배포됨을 의미합니다. 디자이너는 페이지의 형식을 다음 번에 누군가가 그 내용을 요구할 때 서버와 업데이트가 컴파일 될 것입니다. "독해력을 많이 읽었습니까? – Will

+0

작은 이름이 아닌 다른 답변이 없습니다. – TFD

1

포털 내에서 콘텐츠를 호스팅하고 싶지 않다면이 문제에 대한 완벽한 답을 모른다.

디자인하는 비트가 페이지의 모양과 느낌에 맞으면 CSS로 제어 할 수 있으므로 다른 CSS 파일을 사용하여 테마를 만들 수 있습니다.

0

재미있는 질문,
얼마전에 그 지역에서 물어 뜯고있었습니다.

포토샵 또는 플래시가 아닌 영역에 있지 않은 웹 디자이너는 얼마나 지식이 있습니까?

DIY-CMS를 사용하는 경우, 예를 들어 가장 취약한 객체를 템플릿으로 만들 수 있습니다. 지. (당신이 어떤 기분이든, 기분이 어떤 것이 든 ;-)) 목록과 디자인을 입력하는 방법 (해당되는 경우).

완전한 프레임 워크를 설정하고 CMS를 통해 디자이너가 사용할 수있는 특성을 다루는 한 다시 컴파일 할 필요가 없습니다. 물론 개발자를 쉽게 볼 수 있습니다. (읽기 : 나를) 핵심적 불쌍 - 완벽의 차이로 을 보았 ....

내가 가장 쉬운 두려워, 오직 관리 해요, 경로는 디자이너가 & 당신에게 원하는 자신의 요구를 표현하는 방법을 표준화하는 것입니다. .. 단지 코드 자체를 코딩하지 않을 것입니다 ...

몇 가지 예를 제공해 주시겠습니까?

1

이것은 실제로 흥미로운 질문이며 완벽한 해결책은 없습니다. 나는이 문제점을 가진 전자 상거래 상점을 위해 일하고, 솔직히, 나는 많은 경우에 디자이너에게 HTML과 CSS를 제공하도록 요청했다. 그런 다음 HTML 조각과 CSS를 가져 와서 프로젝트에 추가했다. 네, 지루 했었습니다 ....

그런 다음 우리는 디자이너들이 html을 복사하여 HTML 편집기에 붙여 넣을 수있는 CMS를 만들었고 우리는 데이터베이스에 html 조각을 저장합니다. 내 웹 응용 프로그램은 런타임에 데이터베이스에서 해당 웹 응용 프로그램을 가져옵니다. 이것은 웹 페이지의 디자인을 완전히 제어 할 수 없기 때문에 일부 문제를 해결하지만 전부는 아닙니다.

결론은 디자이너가 자신의 작업을 어떻게 제출할 것인지에 대한 표준이 필요하다는 것입니다. 당신이 그것을 가지고 있다면, 당신은 HTML과 CSS에 의지 할 수있다. 그렇다면 아마도 그 주위에 CMS를 만드는 것을 생각할 수있다. RAD의 요즘, 나는 html로 작업하는 것이 더 쉬워졌고 css가 나에게 전달되었고 단순히 조각을 복사하여 필요에 따라 마스터 페이지와 다른 페이지에 붙여 넣기했습니다.

1

이것은 CMS 응답이 아니지만 디자이너가 Expression Web에서 마스터 페이지를 열 수 있도록 허용합니다. 전 세계에서 가장 훌륭한 도구라고 말하지는 않겠지 만, 디자이너들에게 Expression의 마스터 페이지 디자인을 좋은 결과를 얻도록 시켰습니다.

그러나 문제가 있습니다. 전체 프로젝트를 열면 디자이너는 Visual Studio에 표시된 treeview보기와 달리 코드 숨김 코드가 별도의 항목으로 표시됩니다.

CMS를 통해 Expression과 함께 마스터 페이지를 체크 아웃 할 수는 있지만 상상할 수있는 방법은 아닙니다.이 작업을 수행 할 수있는 방법이 없으며이를 수행 할 타사 도구도 알지 못합니다. 바라건대 Expression Web 3을 사용하면 더 쉽게 작업 할 수 있습니다.

1

CMS를 사용하는 경우 페이지 콘텐츠를 완벽하게 제어하는 ​​것이 좋습니다.CMS에서 수행 할 수없는 작업이있을 경우 CMS의 확장 또는 플러그인 모듈을 작성하여 디자이너가 CMS의 페이지 편집기에있는 페이지로 끌어다 놓을 수 있습니다.

CMS가 플러그인 모듈을 지원하지 않는 경우 CMS와 마스터 페이지가 의도하지 않은 작업을하도록 강제 할 수 있습니다.

위의 방법으로 문제가 해결되지 않으면 다음과 같은 생각을하게됩니다. 마스터 페이지에서 CMS에서 편집 한 호스트 페이지를 배치하십시오.

희망이 있습니다.

0

.master는 텍스트 파일입니다. 원하는대로 편집 할 수 있습니다. 코드를보기 위해 코드를 다시 컴파일해야한다는 요구 사항은 없습니다. 이는 Master Pages의 가장 큰 승리입니다. 디자이너와 프로그래머가 아닌 사람들은 아무 것도하지 않고 수동으로 편집 할 수 있습니다.

소스 제어하에있는 파일에 액세스 할 수 있도록 권한을 부여하십시오.

관련 문제