zoukankan      html  css  js  c++  java
  • 控件包含代码块,因此无法修改控件集合

    最近遇到一个奇怪的问题,一段在 head 中的代码,有些大多数人的机器上运行没有问题,我在服务器上执行也没有问题,而在一部分人执行起来就直接报错:

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

    出问题的两个系统一个是 2003 企业版,一个是 2008 企业版,都是安装在个人电脑上,但服务器使用的也是 2008 企业版,却没有出问题,SP补丁版本,.Net Framework版本也都相同,确实很奇怪,莫非是 Z 版支持较好?

     

    出问题的代码:

     

    <head runat=”server”>
        
    <link href="<%= ResolveUrl("~/Style/main.css") %>" type="text/css" rel="stylesheet" />
        
    <script type="text/javascript" src="<%= ResolveUrl("~/JavaScript/jquery.js") %>"></script>
    </head>

     

    查找了一些资料,认为应该是一个 .Net 框架限制的问题,因为 aspx 页面的 head 必须加 runat=”server” 属性,那么其下的所有标签也应该被处理成了控件树的一部分,下层数据的动态改变导致上层容器就变得无法修改集合,当然,这也是基于一种猜测,但是我找到的最有可能的一种猜测。

     

    不管 .Net 内部搞什么灰机,我要解决当下的问题,总的说来有两种解决之道:

     

    1、网络上盛传的方法,将 head 中所有涉及 <% ... %> 的元素都移到 body 中去,但显然这是一种不得已而为之的办法,引用式样和脚本本身就应该处于 head 中才对,不推崇。

     

    2、我的方法:增加一个 HeadQuote.ascx 用户控件,然后将这个控件引用到 head 中

     

    <head runat="server">
       
    <uc1:HeadQuote ID="HeadQuote1" runat="server" />
    </head>

     

    虽然产生的过程不够漂亮,但至少最终的结果(Html 页面代码)却是令人满意的,希望这篇文章也能对你有所帮助。

  • 相关阅读:
    shell中的for循环
    tty相关
    udev规则
    find中perm参数
    日志级别的选择:Debug、Info、Warn、Error还是Fatal
    云计算、云存储、大数据
    JSON数据解析(python3.4)
    38、友盟统计
    37、iamgeview 图层叠加
    36、imageview的坑
  • 原文地址:https://www.cnblogs.com/islee/p/1770463.html
Copyright © 2011-2022 走看看