2010-01-30 76 views
1

我想,而在过程中创建一个web服务器.....创建动态HTML C#

我没有能够创造这可能需要从我的C#控制台应用程序链接的动态HTML ...

例如我有一个从系统。例如显示文件代码“C:\题刻\ a.jpeg”现在我想让我的HTML页面特定链接AA HREF链接...

任何帮助将不胜感激..... 谢谢..

(总结......我想创建的HTML页面,这需要从C#控制台应用价值。)

+0

为了澄清:从你前面的问题似乎你正在构建一个Web服务器。现在,您希望为目录生成一个“索引”页面,即一个HTML页面,该页面会自动列出该目录中的所有文件并使用指向这些文件的HTML链接。它是否正确? – dtb 2010-01-30 00:15:21

+0

@dtb是的..你是礼仪。 – tike 2010-01-30 00:22:08

+0

@james黑色..我在这方面是空白的,所以我想得到一些想法,如果可能的话,代码中的几个提示将是伟大的....谢谢。 – tike 2010-01-30 00:23:20

回答

5

忽略虚拟路径等。现在,这里是一个简单的例如让你开始:

StringBuilder sb = new StringBuilder(); 
sb.AppendLine("<html>"); 
sb.AppendLine("<head>"); 
sb.AppendLine("<title>Index of c:\\dir</title>"); 
sb.AppendLine("</head>"); 
sb.AppendLine("<body>"); 
sb.AppendLine("<ul>"); 

string[] filePaths = Directory.GetFiles(@"c:\dir"); 
for (int i = 0; i < filePaths.Length; ++i) { 
    string name = Path.GetFileName(filePaths[i]); 

    sb.AppendLine(string.Format("<li><a href=\"{0}\">{1}</a></li>", 
     HttpUtility.HtmlEncode(HttpUtility.UrlEncode(name)), 
     HttpUtility.HtmlEncode(name))); 
} 

sb.AppendLine("</ul>"); 
sb.AppendLine("</body>"); 
sb.AppendLine("</html>"); 
string result = sb.ToString(); 

result包含一个字符串,您可以将该字符串作为HTTP响应的主体发送到Web浏览器。

(注:我输入正确的代码到答案中,不知道是否编译原样。)

+0

谢谢让我对此进行测试 – tike 2010-01-30 00:24:31

+0

方法'Appendline'没有超载需要'3'参数 – tike 2010-01-30 00:44:57

+0

忘记'string.Format'。固定。 – dtb 2010-01-30 00:49:28