2009-06-01 127 views
8

我在想:是否有一种方法可以在C#中编程创建HTML文件,就像您可以使用XML一样? Mine是一个控制台应用程序,所以也许有些选项不可用。基本上,我想做一些比建立一个大字符串更聪明的东西。在C#中编程创建HTML网页

一个可能的场景:

而是写的:

 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(); 

道歉的幼稚的问题。

+0

更智能的是什么意思?你能描述一下这个场景吗? – shahkalpesh 2009-06-01 22:59:04

+0

谢谢,我有同样的问题。 – 2009-09-01 20:01:26

回答

6

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

  1. NVelocity
  2. Velocity Syntax Guide
+0

唉,链接被破坏。 – 2017-03-03 08:05:12

0

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

7

不要忘记:你可以很容易地生成XHTML与使用XmlTextWriter的方法纯XML。

+0

+1。但对于我目前的问题,我发现NVelocity奇妙地达到了我的目的。 – 2009-06-01 23:35:05

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"]] 
      ] 
     ] 
    ]; 
2

我意识到这个问题是旧的,但是ASP.Net MVC 3 Razor视图引擎的最新发行现在给你使用同样的Razor视图引擎来生成HTML选项出于任何目的。

请参阅Hosting Razor outside of ASP.Net了解如何做到这一点的指南。

+0

我看了一下zip文件,看起来并没有太多。它当然不会生成任何HTML。 – CarneyCode 2013-11-09 10:23:59