在C#3.0中,是否有任何类可以帮助我生成静态html?

时间:2008-11-07 22:32:05

标签: c# html

我正在开发一个HTML表单设计器,需要生成静态HTML并向用户显示。我一直在写这样丑陋的代码:

public string GetCheckboxHtml()
{
    return ("<input type="checkbox" name="somename" />");
}

是不是有一组描述html元素的强类型类,并允许我编写这样的代码:

var checkbox = new HtmlCheckbox(attributes);
return checkbox.Html();

我想不出正确的命名空间来查找这个或在Google中使用的正确搜索词。

5 个答案:

答案 0 :(得分:5)

好吧,如果您下载ASP.NET MVC DLL(可以在任何类型的项目中使用...包括控制台应用程序).​​..那么您可以使用许多HTML帮助程序他们有。

答案 1 :(得分:2)

一种选择是使用XElement functional construction。有关示例日历生成器,请参阅this blog post

在您的情况下,您的Html可以通过以下方式生成:

var input = new XElement("input",
    new XAttribute("type", "checkbox"),
    new XAttribute("name", "somename"));

return input.ToString();

答案 2 :(得分:2)

您可以使用System.Web.UI.HtmlControls命名空间中的类。然后,您可以使用RenderControl生成html内容。

HtmlInputCheckBox box = new HtmlInputCheckBox();

StringBuilder sb = new StringBuilder();
using(StringWriter sw = new StringWriter(sb))
using(HtmlTextWriter htw = new HtmlTextWriter(sw))
{
    box.RenderControl(htw);
}
string html = sb.ToString();

答案 3 :(得分:0)

HtmlTextWriter包含“WriteStartTag”和“WriteEndTag”等好东西,可以很容易地用来创建正确形成的HTML。

您基本上将标记名和属性传递给HtmlTextWriter,并生成正确的HTML,并使用WriteEndTag正确关闭它。

您还可以使用预先编写的HTMLControls将此代码包装到强类型类中。

答案 4 :(得分:0)

另请考虑使用System.Xml。通过使用它,您几乎可以保证您的HTML符合XHTML。