2012-12-10 3 views
1

MVClayer를 호출 할 때마다 최신 MVC 플레이어 빌드와 함께 Composite C1 4.0 베타를 설치하고 설치했습니다 (1212712 야간). 기능을 사용하면 페이지에 추가 태그를 출력합니다. 예를 들어, breadcrums에 대한 MVCPlayer 함수를 호출하고 있습니다. 이것은 출력입니다 :Composite C1 4.0 두 번째 html 태그와 body 태그를 출력하는 Beta 및 MVC 플레이어

..... before breadcrum content ..... 
<a name="site-nav" class="screen-reader"></a> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head /> 
    <body> 
     <html> 
      <head /> 
      <body> 
<!-- START BREADCRUM SECTION --> 
       <ul id="breadcrumbs"> 
        <li><a href="/">Homep</a></li> 
        <li>Events</li> 
       </ul> 
<!-- END BREADCRUM SECTION --> 
      </body> 
     </html> 
    </body> 
</html> 
<div class="clear"></div> 
</div> 
..... rest of page ..... 

보시다시피, 페이지 중간입니다. MVCPlayer가 render 함수에서 XDocument를 반환합니다. 그렇다면 시작 태그 &의 BREADCRUM SECTION이 (가) 댓글을 달기 전에 추가 태그를 제거하려면 어떻게해야합니까? 페이지가 잘 렌더링되지만 이미지 필터 src를 전환하는 것과 같이 페이지 필터를 사용하여 출력에 추가 콘텐츠를 추가하는 기능에 영향을 미치므로 jquery 스크립트를 사용하여 지연로드 이미지 (http://www.appelsiini.net/projects/lazyload 참조)를 수행 할 수 있습니다.

의견이 있으십니까?

감사합니다.

실제 breadcrums 페이지의 출력은 단순히 <ul><li>...</li></ul>


입니다 차드와 로그 파일에 오류가 없습니다. MVC의 플레이어가 실제로 추가 코드 추가 다음 Player.cs 파일에서

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head /> 
    <body> 
    </body> 
</html> 

을, 여기에 코드입니다 :

var sbHtml = new StringBuilder(); 
      sbHtml 
       .Append(@"<html xmlns=""http://www.w3.org/1999/xhtml""> 
      <head/> 
      <body>") 
       .Append(responseWriter.ToString()) 
       .Append(@" 
      </body> 
      </html>"); 

      try 
      { 
       return XDocument.Parse(sbHtml.ToString()); 
      } 

나는 /Renderers/Page.aspx.cs을 수정할 수 있었다

xhtml = _renderingContext.FormatXhtml(xhtml); 

업데이트 : : 원래

: 여분의 태그 아웃 "스트립"에이 줄을 변경

xhtml = _renderingContext.FormatXhtml(xhtml.Replace(@"<html xmlns=""http://www.w3.org/1999/xhtml"">", "").Replace("<html>", "").Replace("<head />", "").Replace("<head></head>", "").Replace("<body>", "").Replace("</body>", "").Replace("</html>", "")); 

이보다 더 좋은 해결책이있을 것이라고 확신합니까? :)

차드

+0

출력 XHTML의 유효성을 검사가 있는지 확인하기 위해 로그 파일을 확인하지만, 그렇게 할 수 없었다 멀리. 나는 : 1. 웹 플랫폼 설치를 통해 최신 4.0을 설치하고 설치 2. 설치된 MVC 플레이어 1.2.18 3. 만든 /Views/Home/Index.ascx 및 Index.ascx.cs (더미) 4. Created /App_Code/Controllers/HomeController.cs 5. 페이지를 편집하고 Composite.AspNet.MvcPlayer 함수를 삽입했습니다. 6. Path 매개 변수에 지정된/홈. 7. 페이지를 저장하고 게시하여 브라우저에서 보았습니다. 8. 브라우저에서 열 었으며 소스 뷰를 확인했습니다. 문제를 재현하려면 어떻게해야합니까? – mawtex

답변

1

그것은 당신이 전체 결과 문서 및 유효 XHTML, 그리고 올바르게 처리 할 수 ​​없습니다, 따라서 시스템을 만드는 마크 업을 가지고있는 페이지의 다른 어딘가에있을 수 있습니다.

시도

가) 모든 관련 경고

B는) 내가 문제를 재현하기 위해 노력했습니다 http://www.xmlvalidation.com/