ASP.NET:动态生成HTML,如何?

去年我一直在做一些(开启和关闭)ASP.NET,但我从来没有遇到过这个挑战:我现在正在构建一个非常简单的网站,主要基于HTML和Javascript 。 但是,在一个页面上,我需要从服务器读取XML文件,解析它,从XML文件中包含的值创建HTML,并将其作为响应输出。 我将使用带有C#的ASP.NET。 我理解如何解析XML并在C#中生成HTML代码,但是如何将HTML代码写入响应/页面? 生成的动态HTML仅在页面中的一个大div中,页面的其余部分是静态的。 做这个的最好方式是什么? 因为我之前从未做过这样的事情,所以我猜测一种方法是清除页面的整个HTML源代码并使用Page_Load事件中的Response.Write()来编写整个HTML页面,已插入XML值。 这是正确的方法,如果是这样的话,你可以给我几行代码作为例子来确保我做得对吗? 谢谢!

另外,由于我以前从未有机会这样做,所以在服务器上的ASP.NET C#中读取文件的最佳方法是什么?

更新 :谢谢你的所有答案! 我找到了解决问题的方法,但提供的所有三个答案都是应对这一挑战的好方法。 正如你可以猜到的那样,给出接受的答案是一个艰难的选择,但是我会通过敬畏来回答这个问题 ,因为他显然付出了很多努力,这是一个非常优雅的解决方案,并且他回答了我的两个问题。 谢谢大家的精彩答案!

创建一个可在服务器代码中访问的div:

在Page_Load中:

 xmlGeneratedContent.InnerHtml = parcedHtmlFromXml; 

编辑:
作为对上一个问题的回答:如何读取服务器上的文件…
如果文件位于网站下,则可以使用Server.MapPath从相对URL获取物理磁盘位置:

 string filename = Server.MapPath("files/file.txt"); 

如何阅读它取决于它是什么类型的文件,以及你想如何阅读它。 如果您想将其作为纯文本阅读,请参阅以下方法:

一次阅读:

 string content = System.IO.File.ReadAllText(filename); 

一次读入包含这些行的字符串数组:

 string[] content = System.IO.File.ReadAllLines(filename); 

一次读一行:

 System.IO.StreamReader sr = new System.IO.StreamReader(filename); while (!sr.EndOfStream) { string line = sr.ReadLine(); // or other method reading a block //Do something whith the line } sr.Close(); sr.Dispose(); 

在codebehindfunction中:

 public string getHML() { return "htmltext"; } 

在页面上:

 
<%=getHML()%>

只是为了增加多样性:我最喜欢的解决方案是使用

  

然后在代码中:

 this.MyLiteral.Text = "Generated HTML goes here"; 

相对于

的优势在于它不会产生额外的HTML – 因此您可以将它放在任何您想要的位置并生成您想要的任何内容。

如果我可以轻松地在每个请求上重新生成内容,我通常也会在其上设置EnableViewState="false" 。 这会减少ViewState的大小,因为myLiteral.Text也保存在ViewState中。

那么,你自己的建议肯定会奏效。 清除ASPX页面中的所有html,并在Page_Load事件中执行以下操作:

 Response.Write(System.IO.File.ReadAllText(yourFilePath)); 

我不认为还有更多。