1

私はmvcが初めてです。2 つのメソッドを持つコントローラーがあります。ボタンをクリックするだけでリストをテキスト ファイルに戻したい。リストを CreateReportFile メソッドに渡す方法を見つけようとしましたが、うまくいきませんでした。これは、stringbuilder オブジェクトに対して非常にうまく機能します。

リストをテキスト ファイルに表示する方法を教えてください。

@Html.ActionLink("Download File", "CreateReportFile");


         public FileStreamResult CreateReportFile()
                {
                    //todo: add some data from your database into that string:
                    var string_with_your_data = string.Empty;              
                    var byteArray = Encoding.ASCII.GetBytes(string_with_your_data);
                    var stream = new MemoryStream(byteArray);
                    return File(stream, "text/plain", "Report" + DateTime.Now + ".txt");
                }



                public List<Student> GetStudents()
                {
                    return new List<Student>()
                    {
                        new Student() {firstname="james",lastname="john",emailAddress="james.john@yahoo.com"},
                        new Student() {firstname="patric",lastname="swayze",emailAddress="patric.swayze@yahoo.com"},
                        new Student() {firstname="james",lastname="john",emailAddress="james.john@yahoo.com"},
                        new Student() {firstname="toy",lastname="gas",emailAddress="toy.gas@yahoo.com"}
                    };
                }
4

3 に答える 3

3

学生リストをその文字列に取得しようとしている場合は、ファイルに書き込んでいます。

public FileStreamResult CreateReportFile()
{
    List<Student> students = GetStudents();
    StringBuilder sb = new StringBuilder();
    foreach (Student s in students)
        sb.AppendLine(s.firstname + ", " + s.lastname + ", " + s.emailAddress);

    var string_with_your_data = sb.ToString();
    var byteArray = Encoding.ASCII.GetBytes(string_with_your_data);
    var stream = new MemoryStream(byteArray);
    return File(stream, "text/plain", "Report" + DateTime.Now + ".txt");
}
于 2013-10-10T16:40:49.757 に答える
0

List オブジェクトをテキストに変換する方法を尋ねている場合は、それを行うメソッドを作成するか、Serializer を使用できますが、json または xml にフォーマットされます。

Student オブジェクトでオブジェクトを自分で変換するには、ToString を次のようにオーバーライドできます。

public override string ToString()
{ 
    return String.Format("firstname={0}, lastname={1}, emailAddress={2}", firstname, lastname, emailAddress);
}

次に、リストをループできます

string mystring = string.Empty;
foreach(var student in Students)
     mystring += student.ToString() + "\n";

あなたが始めるかもしれないいくつかのアイデア。

于 2013-10-10T16:45:36.650 に答える
0

これを追加して文字列にし、データを送信するだけです。

 foreach(Student test in GetStudents())
            {
                string_with_your_data += test.firstname + ", " + test.lastname + ", " + test.emailAddress + "\r\n";
            }
于 2013-10-10T16:43:38.577 に答える