0

我有一个 foreach 循环,当我单击按钮时,它应该显示 txt 文件中的行。单击按钮时没有显示任何内容。我究竟做错了什么?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Main(object sender, EventArgs e)
        {
            foreach (string line in File.ReadLines(@"C:\Users\Matt\Desktop\AirportCodes2.txt"))
            {
                if (line.Contains("Chicago"))
                {
                    Console.WriteLine(line);
                }
            }
        }
    }
}

文本文件以制表符分隔,格式如下:

芝加哥 IL ORD 奥黑尔国际

4

1 回答 1

5

既然是网页表单,就挂上页面的Page_Load事件。但我建议通过 ASP.NET 页面生命周期来了解预定义事件。

 protected void Page_Load(object sender, EventArgs e)
 {
     foreach (string line in File.ReadLines(@"C:\Users\Matt\Desktop\AirportCodes2.txt"))
     {
         if (line.Contains("Chicago"))
         {
                 Response.Write(line);
         }
     }
}

由于它是 Web 应用程序,请将 txt 文件放在 App_Data 文件夹中,然后使用 Server.MapPath 函数访问它。原因是路径可能与本地计算机以及您最终将其部署到 Web 服务器时不同。

导入using System.Text;命名空间

 StringBuilder result = new StringBuilder();
 int i = 0;
 foreach (string line in File.ReadLines(Server.MapPath("~/App_Data/AirportCodes2.txt")))
 {
       if (line.Contains("Chicago"))
       { 
           i = i + 1;
           result.Append((string.Format("label{0}:{1}",i,line));
           result.Append("<br/>");
       }
}
lblAirportCodes = result.ToString();

在 aspx 中:

<asp:Label runat="server" id="lblAirportCodes"/>
于 2013-03-13T19:39:14.183 回答