感觉我做错了生成HTML

Tom*_*len 0 html c# asp.net

public class BlogComment
{
    public int ID;
    public int UserID;
    public string Username;
    public string Comment;
    public DateTime Date;
    public int VotesUp;
    public int VotesDown;

    public Panel GetCommentPanel()
    {
        Panel WrapPanel = new Panel();
        WrapPanel.CssClass = "user-comment-wrapper";

        Panel VotePanel = new Panel();
        VotePanel.CssClass = "rfloat";
        HyperLink UpVote = new HyperLink();
        HyperLink DownVote = new HyperLink();
        UpVote.CssClass = "s vote-box vote-up";
        DownVote.CssClass = "s vote-box vote-down";
        UpVote.NavigateUrl="#";
        DownVote.NavigateUrl = "#";
        VotePanel.Controls.Add(UpVote);
        VotePanel.Controls.Add(DownVote);
        WrapPanel.Controls.Add(VotePanel);

        Panel UserTextPanel = new Panel();
        UserTextPanel.CssClass = "user-comment-txt";
        Literal UserText = new Literal();
        UserText.Text = this.Comment;
        UserTextPanel.Controls.Add(UserText);

        return WrapPanel;
    }
Run Code Online (Sandbox Code Playgroud)

尝试生成以下HTML:

<div class="user-comment-wrapper">
    <div style="float:right">
        <a class="s vote-box vote-up" href="#"></a>
        <a class="s vote-box vote-down" href="#"></a>
    </div>  
    <div class="user-comment-txt">
        Object comes with instantiated Department with empty atributes Object comes with instantiated Department with empty atributes Object comes with instantiated Department with empty atributes.Department with empty atributes Object comes with instantiated Department with empty atributes Object comes with instantiated Department with empty atributes.    
    </div>
    <div class="comment-info-wrapper">
        <div style="float:left">
            <strong>Posted by <a href="#">Tom</a></strong>
        </div>
        <div style="float:right">
            <strong><abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr></strong>
        </div>
        <div class="clear"></div>
    </div>            
</div>
Run Code Online (Sandbox Code Playgroud)

我的意思是它有效,但我不禁觉得这个设计很糟糕.

Dmy*_*iak 5

只需在ASPX页面中编写纯旧的HTML.

<div class="user-comment-wrapper">
    <div class="voting">
        <a class="s vote-box vote-up" href="#"></a>
        <a class="s vote-box vote-down" href="#"></a>
    </div>  
    <div class="user-comment-txt">
        <%: GetCommentContent() %>
    </div>
    <div class="comment-info-wrapper">
        <div class="author-info">
            <strong>Posted by 
              <a href="#"> <%: GetCommentAuthor() %></a>
            </strong>
        </div>
        <div class="comment-info">
            <strong>
              <abbr class="timeago" title="<%: GetShortCommentTime() %>">
                <%: GetFriendlyCommentTime() %>
              </abbr>
            </strong>
        </div>
        <div class="clear"></div>
    </div>            
</div>
Run Code Online (Sandbox Code Playgroud)

请不要申请其他课程.然后你可以添加CSS:

.user-comment-wrapper .voting { float: right; }
.comment-info-wrapper .author-info { float: left; }
.comment-info-wrapper .comment-info { float: right; }
Run Code Online (Sandbox Code Playgroud)

您也使用ASP.NET 4注入内容<%:..%>(或者它可以是常用的<%=...%>,但请确保您将HTML转义它).

我没有看到任何理由手动创建那些绝对不可读的服务器端控件来呈现HTML.