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 № 1Le 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);