iframe runat =“server”内部HTML自动进行HTML编码

时间:2013-08-02 16:08:01

标签: asp.net iframe .net-4.0 webforms csquery

我的母版页包含<!DOCTYPE><head>部分,如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>CMIS</title>
    <link href="~/Site.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>

在MyControl.ascx(FieldTemplateUserControl)中,我有:

<iframe id="Iframe1" runat="server" src="<%# GetNavigateUrl() %>" width="600" height="400">
    <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="<%# GetNavigateUrl() %>" Target="_blank" Text="View" />
</iframe>

渲染页面上面的HTML输出如下:

<iframe id="ContentPlaceHolder1_FormView1_ctl04_ctl05___HelpHtml_Iframe1" width="600" height="400" src="/CMIS/Special/OutputHtml.aspx?Table=UserChecklist&Id=67">
    &lt;a id=&quot;ContentPlaceHolder1_FormView1_ctl04_ctl05___HelpHtml_HyperLink2&quot; href=&quot;/CMIS/Special/OutputHtml.aspx?Table=UserChecklist&amp;amp;Id=67&quot; target=&quot;_blank&quot;&gt;View&lt;/a&gt;
</iframe>

<iframe>的内容当然不应该是HTML编码的?这是一个ASP.net错误吗?

如何阻止这种情况发生?

编辑:抱歉这与CsQuery(一个呈现HTML的DLL)有关

2 个答案:

答案 0 :(得分:0)

我认为您不能将代码放在 IFRAME标记中。 IFRAME不能有内部标记。您只能通过设置src属性来加载IFRAME。

答案 1 :(得分:0)

由DLL引起的问题是渲染标记而不是正常的ASP.NET渲染。