用C#编程创建HTML网页

时间:2009-06-01 22:53:53

标签: c# html

我想知道:有没有办法用C#编程创建HTML文件,就像使用XML一样?我是一个控制台应用程序,所以可能有一些选项不可用。基本上,我想做一些更聪明的事情,而不仅仅是建立一个大字符串。

可能的情况:

而不是写作:

     string html="<html><head>Blah</head><body>{0}</html>", myotherstring

我想像XML一样工作

     XmlTextWriter w = new XmlTextWriter(xml_file_path + xml_file_name,
                                        System.Text.Encoding.UTF8);

     w.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");

     // construct xml
     XmlElement root = xmlDoc.CreateElement("element");

     ...

     xmlDoc.Save(w);
     w.Close();

为天真的问题道歉。

5 个答案:

答案 0 :(得分:7)

不要忘记:使用XmlTextWriter方法,您可以像使用纯XML一样轻松地生成XHTML。

答案 1 :(得分:6)

您可以使用NVelocity。它是Java Velocity模板系统的.Net端口。 API与XmlWriter不同。相反,您将使用简单的脚本语言编写文本文件,将对象放入“上下文”,然后合并模板和上下文以生成HTML文件。

  1. NVelocity
  2. Velocity Syntax Guide

答案 2 :(得分:2)

您可以使用某些第三方开源库来生成强类型验证(X)HTML,例如CityLizard Framework或Sharp DOM。

例如

html
    [head
        [title["Title of the page"]]
        [meta_(
            content: "text/html;charset=UTF-8",
            http_equiv: "Content-Type")
        ]
        [link_(href: "css/style.css", rel: "stylesheet", type: "text/css")]
        [script_(type: "text/javascript", src: "/JavaScript/jquery-1.4.2.min.js")]
    ]
    [body
        [div
            [h1["Test Form to Test"]]
            [form_(action: "post", id: "Form1")
                [div
                    [label["Parameter"]]
                    [input_(type: "text", value: "Enter value")]
                    [input_(type: "submit", value: "Submit!")]
                ]
            ]
            [div
                [p["Textual description of the footer"]]
                [a_(href: "http://google.com/")
                    [span["You can find us here"]]
                ]
                [div["Another nested container"]]
            ]
        ]
    ];

答案 3 :(得分:2)

我意识到这个问题已经过时了,但是最近发布的ASP.Net MVC 3 Razor视图引擎现在让您可以选择使用相同的Razor视图引擎来为任何目的生成HTML。

有关如何执行此操作的指南,请参阅Hosting Razor outside of ASP.Net

答案 4 :(得分:0)

几个月前我做了什么,我将一个asp.net文件(aspx)保存为文本文件中的模板,每当用户需要一个新页面时,我只是将该模板复制到用户指定的文件夹中,将扩展名.txt更改为.aspx,并根据用户的需要以编程方式添加一些选项。虽然这是一个简单的页面。当然,越复杂,代码就越复杂。