/ / HTML rendu de façon incorrecte pour le contenu HTML dynamique à l'aide de la page maître - asp.net, html, dynamique, rendu

HTML mal rendu pour le contenu HTML dynamique à l'aide d'une page maître - asp.net, html, dynamic, rendu

J'ai une page de contenu qui contient du HTML dynamique et du HTML statique. Ce HTML dynamique est attribué à une variable cachée lors du chargement de la page.

Page de contenu HTML

<asp:HiddenField id = "hid"  runat="server"></asp>

CS de la page de contenu

protected void Page_Load(object sender, EventArgs e)
{
hid.Value = node1.InnerText;
}

Cette page de contenu a une page maître. Ci-dessous est sa directive de page

<%@ Page Title="" Language="C#" MasterPageFile="~/log.Master"
AutoEventWireup="true" CodeBehind="Log.aspx.cs" Inherits="s.Log"
ValidateRequest="false" %>`

Ci-dessous un extrait de la page Contenu

<%@ Page Title="" Language="C#" MasterPageFile="~/log.Master"
AutoEventWireup="true"  CodeBehind="Log.aspx.cs" Inherits="s.Log"
ValidateRequest="false" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:HiddenField id = "hid"  runat="server"/>
</asp:Content>`

Maintenant, lorsque la page de contenu se charge, le HTML statique est chargé à l'intérieur de la page maître, mais le contenu dynamique est rendu à l'extérieur de la page maître montre donc un rendu incorrect.

Réponses:

0 pour la réponse № 1

Le point de <asp:HiddenField> est qu'il est caché - par conséquent, toute information contenue dans ce document doit être définie ne doit jamais être affichée sur la page.

Si le contenu du champ contient du HTMLdu code qui pourrait provoquer sa rupture (comme du code HTML qui n'a pas été encodé) ... alors il est possible qu'il affiche quelque chose, mais il est fort probable qu'il soit incorrect. Je pense que c'est ce que vous voyez.

Je ne sais pas exactement pourquoi vous utilisez le HiddenField, ou ce que vous essayez de faire avec son contenu, mais je vous suggère de modifier la ligne suivante ...

hid.Value = node1.InnerText;

Avec...

hid.Value = Server.HtmlEncode(node1.InnerText);