0

ボタンをクリックすると、txtファイルの行を表示することになっているforeachループがあります。ボタンをクリックしても何も表示されません。私は何が間違っているのですか?

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);
                }
            }
        }
    }
}

テキストファイルはタブで区切られ、次のようにフォーマットされます。

シカゴILORDO'Hare International

4

1 に答える 1

5

Webフォームなので、ページの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 に答える