誰かがHTMLコンテンツをASP.NETページに動的に追加するための「正しい」方法を教えてください。
私は次の宣言的な方法を知っています。
//Declaration
<%= MyMethodCall() %>
//And in the code behind.
protected String MyMethodCall()
{
return "Test Value";
}
より良いまたはベストプラクティスの方法はありますか?
編集:特定のフォルダーにある画像に応じて、ギャラリーギャラリーを動的に構築しています。
何をしたいかによって異なります。
コントロール/テキストの場合、通常、LiteralControl
を使用し、Text
プロパティを追加するHTMLとして設定します。このコントロールは、ページ上の表示したい場所に追加できます。
LiteralControlリファレンスは here です
oK.
LiteralControl imageGallery = new LiteralControl();
string divStart = @"<div id='thumbs'><ul class='thumbs noscript'>";
imageGallery.Text += divStart;
foreach ([image in images])
{
string imageHTML = @"<li><a class='thumb' name='optionalCustomIdentifier' ref='path/to/slide' title='your image title'>
<img src='path/to/thumbnail' alt='your image title again for graceful degradation' /></a>
<div class='caption'>[caption]<div></li>";
imageGallery.Text += imageHTML;
}
string divEnd = @"</ul></div>";
imageGallery.Text += divEnd;
this.[divOnPage].Controls.Add(imageGallery);
Aspx:
<div id="DIV1" runat="server"></div>
コードビハインド:
DIV1.InnerHtml = "some text";
それを行うにはいくつかの方法がありますが、実際に使用する方法はシナリオと好みによって異なります。
別のオプション
//.aspx
<asp:Literal ID="myText" runat="server"></asp:Literal>
//.aspx.cs
protected Literal myText;
myText.Text = "Hello, World!";