【发布时间】:2013-11-17 23:38:01
【问题描述】:
上下文:
我创建了一个自定义“脚本”控件,我在我的几个用户控件中使用它(这些都通过 ASCX 路径加载)。这个 Script 控件提供了几个有趣的特性,但是我现在希望能够将 ASCX 标记的脚本 out 移动到与 ASCX 控件相同的目录中,然后动态加载这个标记。 (我不能使用普通的<script> 标签,因为 Script 控件会创建一个特殊的绑定上下文,以便可以通过干净的 API 访问它。)
也就是说,目前我的 Script 控件的使用方式如下(其中的 <script> 元素由 Script 控件使用,不应与最终的 HTML 标记混淆):
<SmartScript runat="server">
<script>/* the code here */</script>
</SmartScript>
但我希望它可以用作:
<SmartScript runat="server">
<script src="~parent/theCode.js" />
</SmartScript>
但是,我希望将“~parent”扩展到 ASCX 控件的文件系统位置,以便我可以直接加载文件并将其用作渲染脚本的内容。
也就是说,给定基于 ASCX 的用户控件(可以通过 Parent 属性获得),如何确定存放 ASCX 标记文件的系统路径?(并且,我应该注意哪些注意事项?)
最好这是完整的路径,因为像 ~/_CONTROLTEMPLATES/prj/ctrl.ascx" 这样的东西仍然会留下另一层重定向(~ 在这里是什么意思?)。
(应用程序以足够的信任运行以从文件系统读取,并且我避免使用嵌入式资源,因此我可以推送布局更改而无需推送 DLL 并重新启动 IIS 工作程序。)
【问题讨论】:
标签: asp.net web-controls ascx