Using themed css files requires a header control on the page. (e.g. <head runat=“server” />)

由于项目需要需要将XML字符串显示在浏览器中,具有可收缩的“+”和“-”,通过一段时间的测试,一开始使用Webbrowser,在WPF中的Webbrowser只能Navigate文件才可以显示,如果使用Winform中使用Webbrowser,则需要引用WindowsFormsIntegration和System.Windows.Forms,在WPF中将Winform的Webbrowser放入WindowsFormsIntegration中的WindowsFormsHost里面就行了,但是Winform的Webbrowser也只能用Navigate来定位文件,和shdocvw.dll中的Webbrowser接口一样,但是Winform中的Webbrowser还有DocumentText和DocumentStream,但是给这两个属性赋值后,XML会被解析成文本,最后在网上发现可以使用以下代码实现
                Response.Charset = "utf-8";
                Response.ContentType = "text/xml";
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                Response.Write(XML);//要传入的字符串

而以上代码要正确运行,前台Aspx页面只能留下最顶上面的一句代码,其他的Html什么的都得删除,因为XML自己要作为根节点,例如Aspx页面如下:

<%@ Page Language="C#" AutoEventWireup="true"  CodeBehind="RequestMessagePage.aspx.cs" Inherits="MyNameSpace.RequestMessagePage" %>

但是项目中又在Web.config中使用了 <pages theme="Default" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />

导致所有页面要应用Default中定义的所有样式,由于以上页面没有Header,导致“Using themed css files requires a header control on the page. (e.g. <head runat=“server” />)”异常的出现。在网上搜索了下使用 EnableTheming="false" StylesheetTheme="",但是仍然没有效果。

最后通过在页面文件中添加如下代码来禁止该显示XML页面应用样式终于成功了

       protected override void OnPreInit(EventArgs e)
        {
            base.OnPreInit(e);
            this.Theme = null;
        }

最后一点本项目是在一个页面中嵌入这个显示XML的页面,通过iframe来承载XML页面,通过Session来传递需要的值来完成的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值