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

Max*_*sky 1 javascript c# asp.net dynamic

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

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

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

awe*_*awe 7

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

<div runat="server" id="xmlGeneratedContent"></div>
Run Code Online (Sandbox Code Playgroud)

在Page_Load中:

xmlGeneratedContent.InnerHtml = parcedHtmlFromXml;
Run Code Online (Sandbox Code Playgroud)

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

string filename = Server.MapPath("files/file.txt");
Run Code Online (Sandbox Code Playgroud)

如何阅读它取决于它是什么类型的文件,以及你想如何阅读它.如果你想把它作为纯文本阅读,这里有一些方法:

一次阅读:

string content = System.IO.File.ReadAllText(filename);
Run Code Online (Sandbox Code Playgroud)

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

string[] content = System.IO.File.ReadAllLines(filename);
Run Code Online (Sandbox Code Playgroud)

一次读一行:

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();
Run Code Online (Sandbox Code Playgroud)


x2.*_*x2. 5

在codebehind功能中:

public string getHML()
{
 return "htmltext";
}
Run Code Online (Sandbox Code Playgroud)

在页面上:

<div><%=getHML()%></div>
Run Code Online (Sandbox Code Playgroud)