ASP.NET2.0 在head中添加了代码块后出现的问题

简介:

在ASP.MET2.0中的aspx页面文件中的head标签中添加一些东西可能造成一系列严重的问题,最近我们项目就是这个样子,幸好经过以下的测试大体知道一些原因所在,避免造成项目危险。
如:
一:
后台代码:

using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public   partial   class  CommonQuery_PageRegStyle : System.Web.UI.Page
{
    
protected string strAlert = "Hello, Happy New Year!";
    
protected void Page_Load(object sender, EventArgs e)
    
{

    }

    
protected override void OnPreRender(EventArgs e)
    
{
        
        
string cssFrageMent = "<style type='text/css'> "
                               
+ ".CommonQueryBtn {"
                               
+ "  border:0; width:64px;height:20px;background:url('"
                               
+ HttpRuntime.AppDomainAppVirtualPath + @"/images/BUTTON/btn.jpg');"
                               
+"     }</style>";
        LiteralControl include 
= new LiteralControl(cssFrageMent);        
        
this.Page.Header.Controls.Add(include);
        
base.OnPreRender(e);
    }

}


前台代码:
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="PageRegStyle.aspx.cs" Inherits="CommonQuery_PageRegStyle"  %>

<! 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 >
        
<% = strAlert  %>
    
</ title >
  
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
        
< div >
            
< asp:Button  ID ="Button1"  runat ="server"  Text ="Button"   />
            
< div >
                
<% = strAlert %>
            
</ div >
        
</ div >
    
</ form >
    
< script  type ="text/javascript" >
        
function aa()
        
{
            
var a = '<%=strAlert %>';
            alert(a);
        }

        aa();
</ script >
</ body >
</ html >
这样运行一切相安无事
好改一下代码:
修改标签<head></head>里的代码:
< head  runat ="server" >
    
< title >
        
<% = strAlert  %>
    
</ title >
  
<% = strAlert %>
</ head >
运行结果出错了:
 

“/ControlTest”应用程序中的服务器错误。

控件包含代码块(即 <% ... %>),因此无法修改控件集合。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Web.HttpException: 控件包含代码块(即 <% ... %>),因此无法修改控件集合。

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪: 

[HttpException (0x80004005): 控件包含代码块(即 <% ... %>),因此无法修改控件集合。]
            System.Web.UI.ControlCollection.Add(Control child) +233
            System.Web.UI.PageTheme.SetStyleSheet() +365
            System.Web.UI.Page.OnInit(EventArgs e) +32
            System.Web.UI.Control.InitRecursive(Control namingContainer) +345
            System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1795
            
好再修改一下代码:
< head  runat ="server" >
    
< title >
        
<% = strAlert  %>
    
</ title >
  
< script  type ="text/javascript" >
        
function aa()
        
{
            
var a = '<%=strAlert %>';
            alert(a);
        }

        aa();
    
</ script >
</ head >

一样的错误再次出现。得出的结果:在动态为<head></head>添加代码时,<head></head>标签中非<title>标签不能包含<%...%>这样的代码块。
二:
好现在我们重新新建一个文件
后台代码:
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public   partial   class  CommonQuery_TestStylePage : System.Web.UI.Page
{
    
protected string strAlert = "Hello, Happy New Year!";
    
protected void Page_Load(object sender, EventArgs e)
    
{

    }

}
这次没有在head中动态添加东西
前台:
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="TestStylePage.aspx.cs" Inherits="CommonQuery_TestStylePage"  %>

<! 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 > <% = strAlert  %> </ title >
    
<% = strAlert  %>
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
    
    
</ div >
    
</ form >
</ body >
</ html >

以上代码运行没有问题
但 ......
再添加一东西后... 如图,添加了主题,主题里包含了一些Css样式文件

再运行测试,结果又是出现以上的错误。。郁闷啊。。

有知有何好的解决方法呢?

综上所试,本人觉得开发ASP.NET或网面时,最好的方法就是将一些JavaScript代码控制页面的一些东西写在页面下端即</body>之上。

一些样式相关的控制外观的东西最好就写在<head></head>中以避免出现一些不可预见的问题,当然这样做也是最符合各自职能执行的顺序




本文转自Sam Lin博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2008/01/04/1026321.html,如需转载请自行联系原作者


目录
相关文章
|
6天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1640 116
|
7天前
|
人工智能 程序员 API
Codex 接入 DeepSeek-V4-Flash:还能补上识图,提供两套方案
Codex 接入 DeepSeek-V4-Flash 怎么配?本文覆盖 CLI 与桌面端,再用 qwen3-vl-flash 补识图,两套方案可直接照做
1114 5
|
13天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1954 9
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
7天前
|
编解码 人工智能 安全
2核4G/4核8G/8核16G阿里云服务器如何选择实例?经济型e、通用算力型u2i与计算型c9i选哪个?
本文介绍了阿里云2核4G、4核8G、8核16G三档主流配置下经济型e、通用算力型u2i和计算型c9i三种实例的最新活动价格与适用场景。同配置下三者价差显著,以2核4G为例,经济型e低至599.93元/年,计算型c9i则高达1742.08元/年。文章详细解析了各实例的性能定位:经济型e适合轻负载入门场景,u2i兼顾稳定算力与性价比,c9i凭借第9代至强处理器与芯片级安全能力支撑高性能业务。同时提示用户可叠加满减优惠券享受折上折,建议根据业务负载与预算综合决策。
539 112
|
19天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
2757 4
|
11天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
730 111
|
21天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2653 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
7天前
|
人工智能 JSON Shell
2026AI漫剧本地全开源方案(附各个软件模型链接),8G显卡也能流畅运行
这是一套完全本地化部署的AI漫剧生成技术链路:涵盖LLM剧本分镜生成、FLUX文生图(IP-Adapter人脸锁定)、StoryDiffusion时序连贯控制、LTX-2.3唇形同步视频生成,及ComfyUI全流程调度。零云端费用,仅耗硬件算力,单集2–4小时可产出竖屏短视频,适配抖音/B站分发。
|
5天前
|
人工智能 API 开发工具
2026 零基础本地 AI 漫剧完整实操教程(8G 笔记本显卡可用|附可直接复制命令与代码)
本方案提供完全离线、本地运行的漫剧全自动制作流程:RTX3060/4050 8G显卡即可驱动,涵盖Qwen写分镜→ComfyUI统一角色绘图→LTX2.3图生微动画→Qwen3-TTS本地配音→FFmpeg自动合成,全程无水印、免API、不限次。专为低显存优化,解决变脸、闪烁、爆内存三大痛点。(239字)