我正在開發一個ASP.NET web應用程序,並且我一直在遇到同樣的問題:清潔輸出的ASP.NET HTML控件?
有時我想從代碼隱藏中將HTML寫入頁面。例如,我有一個頁面Editor.aspx,其輸出根據GET變量的值「view」而變化。換句話說,「Editor.aspx?view = apples」輸出與「Editor.aspx?view = oranges」不同的HTML。
我目前用StringBuilder輸出這個HTML。例如,如果我想創建一個列表,我可能會使用以下語法:
myStringBuilder.AppendLine("<ul id=\"editor-menu\">");
myStringBuilder.AppendLine("<li>List Item 1</li>");
myStringBuilder.AppendLine("</ul>");
的問題是,我寧願使用ASP.NET的列表控件用於此目的,因爲StringBuilder的語法的幾行妨礙我代碼的可讀性。但是,ASP.NET控件傾向於輸出錯綜複雜的HTML,具有唯一的ID,內聯樣式以及偶然的內嵌JavaScript塊。
我的問題是,是否有一個ASP.NET控件只代表一個通用的HTML標籤?換句話說,有沒有像下面的例子控制:
HTMLTagControl list = new HTMLTagControl("ul");
list.ID = "editor-menu";
HTMLTagControl listItem = new HTMLTagControl("li");
listItem.Text = "List Item 1";
list.AppendChild(listItem);
我知道有包裝和這種,但而不是馴服ASP.NET的複雜性,我寧願用簡單從一開始就開始。
感謝您的HtmlTextWriter提示。 「輕鬆繞開」是什麼意思? – attack 2009-08-10 02:52:25
我已經添加了一個代碼示例來展示我的意思。基本上你只需要使用正確的屬性就是我的意思。另外,如果你真的想要對輸出進行絕對控制,那麼使用HtmlTextWriter,因爲這是所有控件最終在Render()方法中使用的。它確實有一些學習曲線。 – Josh 2009-08-10 02:55:48