2012-01-03 16 views
0

私はxxxというaspxのリテラルを持っています。Asp.net黄色のコード<%vs Explicit asp control

今、JSの世界に入ることができます。

は私が常に使用:アイブ氏は、このようなコードを見

alert('audit.aspx?claim_id=<%= xxx.Text%>'); 

しかし:これも働いている

 alert('audit.aspx?claim_id=<asp:Literal id="xxx" runat="server" />'); 

私は<asp:Literal<%=の構文と等しいと結論できますか?

私は再び

...彼はRUNATサーバーアイテムであることを知っているが - 私は違いを見てみたいです。

答えて

2

コントロールは、ページがレンダリングされるときに、そのTextプロパティの値を単に出力します。そのため、結果として表示されるJavaScriptは、クライアントが見たときに同じように見えます。しかし、2つは同じではありません。

<%= xxx.Text %>このテキストプロパティの値を明示的に読み取り、書き出します。 Literalコントロールはページの他の場所にあり、Textプロパティも書き込まれます。

asp:LiteralコントロールをJavaScript内に配置することは、このコントロールをレンダリングしてそこに値を配置することに依存します。これはページ内の場所であるため、同じコンテンツを別の場所にレンダリングする必要はありません。

しかし、孤立して撮影しても、私の心にはこのコントロールを適切に使用できないようです。書き留めたい簡単なテキストがある場合は、それをPage由来のコードビハインドクラスのプロパティとして公開します。

+0

APIを見てください。私は文字列を補間するときに尋ねました。そして、を<%のような黄色のコードなしの文字列の中にあると見なしました。 –

+0

JavaScriptはどちらも見えません。両方のフォームは、サーバー側のコードによってLiteralコントロールのTextプロパティ値としてレンダリングされます。 –

関連する問題