在某些情况下,内联代码标记将呈现为文本

时间:2010-07-13 08:08:04

标签: c# .net asp.net

在我的aspx中,我有这一行:

<link href="<%= Request.ApplicationPath %>/css/ma/screen-ma.css"        rel="Stylesheet"type="text/css" media="screen" />

呈现为:

<link href="/XFormPortal/css/ma/screen-ma.css"        rel="Stylesheet"type="text/css" media="screen" /> 

这似乎是对的,对吧?

然后我改变一个字符,让我们说在rel和type属性之间添加一个空格,所以现在我有以下内容:

<link href="<%= Request.ApplicationPath %>/css/ma/screen-ma.css"        rel="Stylesheet" type="text/css" media="screen" />

现在改为:

<link href="&lt;%= Request.ApplicationPath %>/css/ma/screen-ma.css" rel="Stylesheet" type="text/css" media="screen" /> 

好的,这里发生了什么?内联代码标记突然被忽略并写成文本?因为一个空间?

任何人都能解释一下吗?

3 个答案:

答案 0 :(得分:3)

我建议它与预编译器解析表达式的顺序有关...具体来说,我怀疑在第一个示例中省略了空格会导致特定的正则表达式匹配失败,而你基本上逃避正确的解析。请改为使用 href 标记周围的单引号。

答案 1 :(得分:1)

<link href=<%="\""+Request.ApplicationPath%>/css" rel="Stylesheet" type="text/css" media="screen"/>

答案 2 :(得分:0)

尝试从head标签中删除runat =“server”。