我正在开发一个HTML表单设计器,需要生成静态HTML并向用户显示。我一直在写这样丑陋的代码:
public string GetCheckboxHtml()
{
return ("<input type="checkbox" name="somename" />");
}
是不是有一组描述html元素的强类型类,并允许我编写这样的代码:
var checkbox = new HtmlCheckbox(attributes);
return checkbox.Html();
我想不出正确的命名空间来查找这个或在Google中使用的正确搜索词。
答案 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。