SharePoint 2010 >> Edição de HTML de saída >> Problemas com a página ou a página principal substituem

Está bem. Este é um grande problema. Vou tentar explicar meu problema, mas avise-me se precisar de mais informações.

Gostaria de alterar o HTML que o SharePoint 2010 gera. Vou usar o HTML Agility Pack], que pega uma string de HTML entre outros objetos e altera a font

Existem duas maneiras de alterar a fonte completa em S

Usando adaptadores de controle ou estendendo controles Eu posso acessar os métodos de renderização Page, MasterPage ou mesmo ContentPlaceHolder, pegar o HTML, alterá-lo e depois gravá-lUse um módulo HTTP com um filtro e altere o fluxo de saída

nfelizmente, existem problemas com esses dois método

Número 2, o filtro funciona bem, mas você precisa desativar o Cache de Saída. Eu não posso fazer isso. Os sites de minha marca têm uma quantidade enorme de tráfego. Portanto, os filtros são discutíveis até que a equipe do SharePoint 2010 conserte / nos apresente uma solução alternativa. Li em algum lugar das minhas viagens que eles estão cientes e farão algo a respeit

Número 1 funciona muito bem. Simplesmente uso o seguinte e posso alterar o HTML da página, mas há um grande problem

HtmlDocument hd    = new HtmlDocument(); //Agility HTML Object.
StringBuilder sb   = new StringBuilder();
StringWriter sw    = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

//Render Object into HtmlTextWriter
base.Render(htw);

//String to hold the HTML from the StringBuilder of the HtmlTextWriter
string html = sb.ToString();

//Mess with the String here using the Agility HTML Pack

//Write the HTML to the writer
writer.Write(html);

//Done!

Este código funciona muito bem, mas o SharePoint 2010 está anexando dados ao gravador / ou alterando os controles após a substituição da renderização da Página / MasterPag

Quando depuro, passo a passo e observo a string html, ela se parece com a seguint

"<html ....  ....</html>"

Isto é importante notar, porque não há nada antes da primeira tag HTML. A abertura "<" está na posição 0.

Mas quando o HTML acaba no navegador, vejo o seguint

DOMAIN\user<script type="text/javascript">
//<![CDATA[
var _spUserId=1;
//]]>
</script>
<html... 
....</html>

Além disso, o nome do usuário está ausente na área de boas-vindas, no canto superior direito da faixa de opções, porque agora o coloca antes da tag de abertur

Se eu não atribuir ao objeto gravador, nada no render substituirá a página no navegador, apenas mostrará tudo antes da tag HTML. O engraçado é que não deve mostrar nada!

Se eu visitar outras páginas. QUALQUER página que tenha uma exibição de lista. Todos os itens são renderizados antes da tag. É importante observar que são apenas os valores, não o html. O HTML para os itens da lista existe onde deveria estar na exibição da lista.

Por exemplo. (A página é "/_layouts/viewlsts.aspx")

Sem a substituição de renderizaçã

<html...

...
//The Table where the data should be.
<tr>
    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">
            &#160; Picture Libraries
        </h3>

    </td>
</tr>

<tr><td class="ms-vb2 ms-viewlsts-noitems" colspan="6">
    There are no picture libraries. To create one, click <b>Create</b> above.
</td></tr>

<tr>
    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">

            &#160; Lists
        </h3>
    </td>
</tr>

<tr><td class="ms-vb2 ms-viewlsts-noitems" colspan="6">
    There are no lists. To create one, click <b>Create</b> above.
</td></tr>

<tr>

    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">
            &#160; Discussion Boards
        </h3>
    </td>
</tr>

<tr class="ms-alternatingstrong">
    <td class="ms-vb-icon">

            <a id="viewlistDiscussionBoard" href="/Lists/Discussion%20Board/AllItems.aspx" >

            <img border="0" alt="Discussion Board" src="/_layouts/images/itdisc.png" width="16" height="16" /></a>
    </td>
    <td class="ms-vb2" >
            <a id="viewlistDiscussionBoard" href="/Lists/Discussion%20Board/AllItems.aspx">Discussion Board</a>&#160;
    </td>

    <td class="ms-vb2" width="40%" >
            &#160;
    </td>

    <td class="ms-vb2" width="3%" align="right">
    1
    </td>
    <td class="ms-vb2" width="25%" >
        <nobr>
        3 days ago
        </nobr>
    </td>
</tr>
...</html>

Com a substituição de renderizaçã

DOMAIN\user<script type="text/javascript">
//<![CDATA[
var _spUserId=1;
//]]>
</script>Document Libraries"viewlistDocumentLibrary""/AnalyticsReports/Forms/AllItems.aspx""Customized Reports""/_layouts/images/itdl.png""viewlistDocumentLibrary""/AnalyticsReports/Forms/AllItems.aspx"Customized ReportsThis Document library has the templates to create Web Analytics custom reports for this site collection04 days ago"viewlistDocumentLibrary""/Style%20Library/Forms/AllItems.aspx""Style Library""/_layouts/images/itdl.png""viewlistDocumentLibrary""/Style%20Library/Forms/AllItems.aspx"Style LibraryUse the style library to store style sheets, such as CSS or XSL files. The style sheets in this gallery can be used by this site or any of its subsites.04 days agoPicture LibrariesThere are no picture libraries. To create one, click <b>Create</b> above.ListsThere are no lists. To create one, click <b>Create</b> above.Discussion Boards"viewlistDiscussionBoard""/Lists/Discussion%20Board/AllItems.aspx""Discussion Board""/_layouts/images/itdisc.png""viewlistDiscussionBoard""/Lists/Discussion%20Board/AllItems.aspx"Discussion Board13 days agoSurveysThere are no surveys. To create one, click <b>Create</b> above.Blog0
<html...

//The Table where the data should be.
...
<tr>
    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">

            &#160; 
        </h3>
    </td>
</tr>

<tr><td class="ms-vb2 ms-viewlsts-noitems" colspan="6">

</td></tr>

<tr>
    <td class="ms-gb"  colspan="5" style="white-space:nowrap;">
        <h3 class="ms-standardheader">

            &#160; 
        </h3>
    </td>
</tr>

<tr class="ms-alternatingstrong">
    <td class="ms-vb-icon">

            <a id= href= >
            <img border="0" alt= src= width="16" height="16" /></a>
    </td>

    <td class="ms-vb2" >
            <a id= href=></a>&#160;
    </td>

    <td class="ms-vb2" width="40%" >
            &#160;
    </td>
    <td class="ms-vb2" width="3%" align="right">

    </td>
    <td class="ms-vb2" width="25%" >

        <nobr>

        </nobr>
    </td>
</tr>
... </html>

Meu palpite é que tem algo a ver com arquivos de recursos ..

Seja como for, é óbvio que existe algum tipo de manipulação dos objetos após os métodos de renderização Page ou MasterPage. Eu simplesmente não consigo encontrá-l

O fluxo de filtro do Meu Módulo HTTP tem o HTML no local apropriado. Portanto, em algum lugar entre a Página renderizada e o envio do HTML para o navegador, algo está acontecend

Aqui estão algumas outras pessoas que relatam o mesmo problema sem respostas úteis.

Link 1Link 2

Eu apreciaria qualquer insight sobre isso! OBRIGADO

questionAnswers(2)

yourAnswerToTheQuestion