我有一个内容页面,其中包含一些动态HTML和一些静态HTML。此动态HTML在页面加载中分配给隐藏变量。
内容页面HTML
<asp:HiddenField id = "hid" runat="server"></asp>
内容页面的CS
protected void Page_Load(object sender, EventArgs e)
{
hid.Value = node1.InnerText;
}
此内容页面包含母版页。以下是其页面指令
<%@ Page Title="" Language="C#" MasterPageFile="~/log.Master"
AutoEventWireup="true" CodeBehind="Log.aspx.cs" Inherits="s.Log"
ValidateRequest="false" %>`
以下是内容页面的摘要
<%@ 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>`
现在,当内容页面加载时,静态HTML将被加载到母版页中,但动态内容将呈现在母版页之外,因此显示错误的渲染。
答案 0 :(得分:0)
<asp:HiddenField>
的意思是它是隐藏的 - 因此其中包含的任何信息都应该是定义永远不会在页面上呈现。
如果该字段的内容包含可能导致其中断的任何HTML代码(例如尚未编码的HTML代码)......那么它可能会显示某些内容,但很可能是不正确。我认为这就是你所看到的。
我不完全确定您使用HiddenField
的确切原因,或者您尝试对其中的内容做了什么,但我建议您更改以下行...
hid.Value = node1.InnerText;
使用...
hid.Value = Server.HtmlEncode(node1.InnerText);