2011-04-01 126 views
12

页可能有人请指教“正确”的方法是什么添加HTML内容的动态ASP.NET页面?动态添加HTML到ASP.NET

我知道以下声明的方法。

//Declaration 
<%= MyMethodCall() %> 


//And in the code behind. 
protected String MyMethodCall() 
{ 
    return "Test Value"; 
} 

有没有更好的或最佳的实践方法?

编辑:我建立一个Galleriffic照片库动态地根据位于特定文件夹中的图片。

回答

25

取决于你想要做什么。

对于控制/文我通常使用LiteralControl并设置Text财产我想补充,那么这种控制可以是您想要的网页上的任意位置添加HTML它出现

LiteralControl引用 here

只要你想它Galleriffic

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); 
+0

什么是这种方法的优点,而不是我规定的方法? PS:谢谢你的全面的例子! – 2011-04-01 03:15:24

+3

此代码是awfull。为什么不使用中继器?或者.aspx中的for。连接字符串创建HTML不是我在C#代码中的最佳实践 – 2011-04-01 03:21:28

+2

装配标记应该是绝对的最后手段,因为它创建了一个维护的噩梦,这将使邪神得意的想法。至少,将其封装到用户或服务器控件中。 – Thomas 2011-04-01 04:41:56

6

有几种方法可以做到那要用哪个取决于你的场景和偏好。

  • Web用户控件:可以动态添加,并且您可以获得Visual Studio的完整编辑器支持。
  • XML文本(VB.NET只):非常方便的方式来快速拼凑HTML代码。
  • 模板:向您的解决方案中添加一个纯HTML文档,并将其作为资源。然后你会得到编辑器的支持,你不会用HTML源代码来混淆你的代码。
6

.aspx的:

<div id="DIV1" runat="server"></div> 

后面的代码:

DIV1.InnerHtml = "some text";