语法解释<%=%>

时间:2010-08-16 11:56:56

标签: c# asp.net

我使用<%= %>语法在JavaScript函数中传递html控件textarea id。我有一个问题,在我运行页面后保存我的aspx页面它运行成功但在一些后它会自动从html代码中消失。 sombody可以解释上面的语法以及为什么它在给定时间后从源代码中消失 这是代码

执行前我写代码并保存。

<textarea id="txtmsgchar" 
    cols="20" 
    name="txtmsgchar" 
    onkeyup="return taCount(this,'<%= lblcharcount.ClientID %>','<%= lbltotalmsg.ClientID %>')" 
    rows="10" 
    style="width: 477px; height: 111px">
</textarea>

经过一段时间或下次打开项目后,我找到下面的代码

<textarea id="txtmsgchar" 
    cols="20" 
    name="txtmsgchar" 
    onkeyup="return taCount(this,'','')" 
    rows="10" 
    style="width: 477px; height: 111px">
</textarea>

请告诉我为什么给定的输出

3 个答案:

答案 0 :(得分:1)

是执行的服务器代码。该表达式由lbltotalmsg.ClientID的值替换。

发送给客户端的结果是这样的:

','some-client-id')" rows="10" style="width: 477px; height: 111px">

答案 1 :(得分:1)

  

经过一段时间或下次我打开项目后,我发现以下代码

除非您不保存,或者除非您从浏览器查看代码视图(即,在呈现页面之后),否则这似乎是不可能的。另一个想法可能是你在一个连接到自动构建环境的版本控制系统中,如果它们包含编译错误,它可能会回滚你的更改(但我怀疑任何构建环境都会自动执行)。

无论如何,您的问题与<%= >本身无关,它只是解释服务器端的表达式并输出其值。

更新:也许您的问题如下:如果控件lbltotalmsglblcharcount不可见(服务器端Visible="False"),则它们不会呈现给客户端,因此会有空ClientId

答案 2 :(得分:0)

它运行C#或VB.NET表达式。与DateTime.Now

一样