不能在aspx页面的<head>部分使用Response.Write?

Mat*_*lay 5 asp.net response.write head

我正在尝试使用Response.Write()方法在aspx页面的<head>部分中动态插入内容.我需要从代码隐藏对象的属性中注入一个字符串值,该对象是我的CSS文件的链接.但是,它在运行时未正确处理.该对象在类上是公共的,并在Page_Load()事件中保持水分.在页面正文中,我可以成功地从Corpoartion对象中注入其他属性而没有任何问题.

为什么这不适用于<head>部分?

这是无法正确扩展的部分:

<link href="<%= Corporation.PageStyleSheet %>" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

这是整个<head>部分:

<head runat="server">
    <title></title>
    <link href="<%= Corporation.PageStyleSheet %>" rel="stylesheet" type="text/css" />
    <script language="JavaScript" type="text/JavaScript" src="cntv_menu.js"></script>
    <script language="JavaScript" type="text/JavaScript" src="cntv_category.js"></script>   
</head>
Run Code Online (Sandbox Code Playgroud)

这不能正常扩展的原因是什么?

Ric*_*lay 6

您不能<%= %>runat="server"标签内使用标签<head>.

你可以<%# %>在代码隐藏中将它更改为和DataBind,或者你可以创建链接标记runat="server",给它一个id并从后面的代码中分配属性.

请参阅此答案,详细信息.