我可以在没有runat =“server”的情况下从用户控件修改.NET中的页面部分吗?

时间:2011-10-04 17:25:47

标签: c# .net user-controls metadata

我在<head/>部分设置了一个没有runat =“server”的页面。我没有权限修改页面中的任何代码。

此页面包含我有权访问的用户控件。我可以从用户控件中向页面的head部分添加<meta/>标记吗?它需要是服务器端,因此javascript解决方案将无法正常工作。

2 个答案:

答案 0 :(得分:2)

您可以解析

中的文字
(this.Page.Controls[0] as LiteralControl).Text

查看字符串<head>的起始位置,并在其中插入所需的任何文本,从而将自己的代码注入页眉,而不用runat="server"标记。

请注意,这是将代码放在最不可能的地方的非常hacky方式(否则<head>元素会被标记为runat="server"所以你可以通常访问它)。如果在以后将head元素更改为ASP.NET控件,这也会中断。它可能无法与母版页一起使用,您必须在控制树中向上查找最顶层的文字元素。

答案 1 :(得分:2)

一个选项是创建一个响应过滤器,然后在将输出发送给用户之前修改它。

http://www.4guysfromrolla.com/articles/120308-1.aspx