我的aspx中有一个名为xxx的文字。
现在让我们进入JS世界。
我一直用:
alert('audit.aspx?claim_id=<%= xxx.Text%>');
但我见过这样的代码:
alert('audit.aspx?claim_id=<asp:Literal id="xxx" runat="server" />');
这也有效。
我可以断定<asp:Literal
等于<%=
语法吗?
我知道他是RUNAT服务器项目......
但又一次 - 我希望看到差异。
答案 0 :(得分:2)
asp:Literal
控件在呈现页面时只输出其Text
属性的值。这就是为什么生成的JavaScript在客户端查看时看起来相同。但两者不一样,没有。
<%= xxx.Text %>
显式读取此text属性的值并将其写出。 Literal
控件将位于页面的其他位置,其中Text
属性也将被写出。
将asp:Literal
控件放在JavaScript中依赖于呈现此控件以将值放在那里,并且因为这是它在页面中的位置,所以不需要在其他地方呈现相同的内容。
然而,在我看来,这两种控制都不适合使用。如果您想要写出简单的文本,那么将其作为Page
派生的代码隐藏类的属性公开。
答案 1 :(得分:0)
Literal类基本上是文本的占位符,但它也会公开您可以挂钩的事件以便更好地控制。
在这里查看API http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literal.aspx