代码之家  ›  专栏  ›  技术社区  ›  Shrike

在.net/wpf应用程序内的Embed web服务器中有效地使用HTML

  •  0
  • Shrike  · 技术社区  · 15 年前

    因此,在某些应用程序的模块中,我需要编写HTML来返回它。这似乎相当乏味。它看起来像:

    using (Stream ostr = ...)
    using (TextWriter tw = new StreamWriter(ostr))
    {
        tw.WriteLine("<html>");
        tw.WriteLine("<head>");
        tw.WriteLine("<title>Web Console</title>");
        tw.WriteLine("<meta http-equiv=\"refresh\" content=\"2\" />");
    }
    

    HTML Agility Pack . 它看起来很酷,但我相信它针对的是其他一些用例(加载一些HTML并使用xpath/linq进行搜索)。但我只需要编写HTML,而不是解析,而不是查询。 我希望使用类似于System.Xml.Linq的库API。

    HtmlDocument htmlDoc = new HtmlDocument();
    htmlDoc.Head.AddScript(ScriptLanguages.JavaScript, "http://localhost/scripts/jquery.js");
    htmlDoc.Body.Elements(
      new HtmlDiv {
        Style="align:center", 
        Content = new []{new TextBlock("Hi")} }, 
      new HtmlDiv (
        new HtmlLabel(text: "StartDate", nameFor: "dtStartDate"),
        new HtmlTextBox(clintName: "dtStartDate", style: "width:100px")
      )
    );
    

    我想到的另一个可能性是使用某种模板引擎。但我不知道哪一个将与嵌入式web服务器无缝工作。

    p、 如果你想知道“嵌入式web服务器”是什么 http://www.codeproject.com/KB/IP/CSharpEmbeddedHTTPServer.aspx

    1 回复  |  直到 15 年前
        1
  •  1
  •   Byron Whitlock    15 年前

    我不知道你的情况,但HTML似乎更易于编写和理解。以您建议的方式生成html有什么好处?

    至于模板引擎,您可以自己轻松创建一个。创建一个具有所需主题的html页面(一个或多个)。添加像%%title%%%%%content%%这样的标记,加载文件并替换regexp,然后提供html。将它封装在一个类中,您就有了一个非常简单、灵活且易于维护的解决方案。

    推荐文章