Ale*_*lex 20 asp.net user-controls
我在ASP.NET 2页面的运行时收到此消息:
"MyFolder/blabla.aspx"页面无法使用用户控件"MyFolder/MyControl.ascx",因为它在web.config中注册并与页面位于同一目录中.
当然我可以将它们分成2个不同的文件夹,从而解决问题,但问题是:
WTF!?!?!为什么我不能把它们放在同一个文件夹里?!为什么他们不能......相处!?!:)
谢谢
cod*_*ger 13
这种限制是由于内部设计考虑因素而设计的:性能.
有关详细信息,请参见此处
备注
TagPrefixInfo类允许您以编程方式访问和修改存储在配置文件中的标记前缀信息.它提供与ASP.NET @ Register 指令相同的功能.标记前缀将ASP.NET中的"命名空间"与必须包含的程序集和命名空间相关联,以使自定义控件和用户控件正常工作.TagPrefixInfo对象存储为TagPrefixCollection对象的成员.该 TagPrefixCollection类允许您以编程方式访问和修改控件中的第页的配置文件的部分.
TagPrefixInfo对象使用add 元素添加到集合中,并指定tagPrefix属性的值以及其他相关属性的值.其他所需信息因您将使用指定标记前缀的控件类型而异:
- 如果它是用户控件,则必须定义TagPrefix,TagName和Source属性.
- 如果它是自定义控件,则必须定义TagPrefix,Namespace和Assembly属性.该大会 如果控制是在应用程序代码目录没有必需的属性.相同的tagPrefix值可用于映射到多个程序集或命名空间.
注意指定源时,用户控件本身不能与页面位于同一目录中.如果是,则在尝试加载页面时会出现运行时错误.
小智 6
如果您在页面或用户控件中注册它而不是web.config,它将正确加载.将以下内容添加到页面顶部.
<%@ Register TagPrefix="MyControlTagPrefix" TagName="MyControlTagName" Src="~/MyFolder/MyControl.ascx" %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8327 次 |
| 最近记录: |