65.9K
CodeProject 正在变化。 阅读更多。
Home

更改自定义 Atlas 控件项目的命名空间时出现“未识别的标签”问题

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.38/5 (3投票s)

2006年10月16日

CPOL

2分钟阅读

viewsIcon

29594

本文提供了解决Atlas控件“未识别的标签”问题的步骤。

Atlas Custom Composite Control in IE

引言

在开发了一个Atlas复合社会保障控件后,我想将根命名空间从默认值 (<项目名称>) 更改为我公司所遵循的标准。 我认为这应该很简单; 我大吃一惊。 基本上,我打开了项目属性,并将根命名空间从“AmericanSSN”(这是我的项目名称)更改为“AO.Web.UI.AtlasControls”。 我重新编译了项目,将其包含在工具箱中,并将复合控件放置在 ASPX 页面上,该控件在设计时呈现正常。 当页面在运行时加载时,我收到了“未识别的标签”错误,针对“americanssn:AmericanSSNBehavior”。 查看呈现的 HTML,我发现在扩展器类生成的 XML 脚本部分下,Page标签和Behavior呈现为

<page …. 
   xmlns:americanssn="americanssn">

<behaviors>
    <americanssn:AmericanSSNBehavior MyProperty="" 
          PageRequestManagerID="_PageRequestManager" 
          id="AmericanSSNControl1_SSNProperties" />
</behaviors>

接下来,我使用 ILDASM 检查了生成的程序集。 在MANIFEST部分的末尾,有以下条目将 JavaScript 资源捆绑到程序集中

.mresource public AO.Web.UI.AtlasControls.AmericanSSNBehavior.js
{
  // Offset: 0x00000000 Length: 0x00001AD0

}
由于我更改了根命名空间,我现在必须更改扩展器文件,以便它呈现以下内容
<page …. 
   xmlns:ao.web.ui.atlascontrols="ao.web.ui.atlascontrols">

<behaviors>
  <ao.web.ui.atlascontrols:AmericanSSNBehavior MyProperty="" 
     PageRequestManagerID="_PageRequestManager" 
     id="AmericanSSNControl1_SSNProperties" />
</behaviors>

我还必须更改 JavaScript 文件。 以下三个步骤解释了所需的更改。

第 1 步。

对项目属性的修改:单击项目属性并将根命名空间从<项目名称>更改为AO.Web.UI.AtlasControls

Project Properties

第 2 步。

对扩展器文件(AmericanSSNExtender.vb)的修改

修改“程序集资源属性”区域,单击 + 号以打开该区域,并将 JavaScript 文件的命名空间限定符从<项目名称>更改为根命名空间。 修改 ClientScriptResource 类属性标签,将前缀参数从<项目名称>更改为根命名空间,并更改 JavaScript 文件的命名空间限定符到根命名空间。

红色标记的部分被替换为蓝色标记的部分

Project Properties

以上更改为

Project Properties

步骤 3。

对行为文件(AmericanSSNBehavior.vb)的修改

红色标记的部分在 JavaScript 文件的不同位置被替换为蓝色标记的部分

Project Properties

以上更改为

Project Properties

Project Properties

以上更改为

Project Properties

Project Properties

以上更改为

Project Properties

© . All rights reserved.