2

組み込みのasp.netファイルの結果を使用して、ファイルストリームを介して作成しようとしているファイルを返そうとしています。Dday.icalを使用して、エクスポート用のカレンダーを作成しています

    MemoryStream export = new MemoryStream();         
    iCalendarSerializer serializer = new iCalendarSerializer(iCal);
    serializer.Serialize(export,System.Text.Encoding.Default);
    return export;

これが私のactionResultです

public ActionResult ExportCalendar()
{
    string userName = User.Identity.Name;
    Guid userId = membershipS.GetUsersId(userName);
    var calendarStream = calendarS.ExportCalendar(userId);
    return File(calendarStream, "text/calendar", "test.ics");       
}

ファイルをダウンロードすると0バイトになります。

4

1 に答える 1

4

ストリームの位置をリセットしてみてください:

calendarStream.Position = 0;

そうFileResultすれば、 がストリームからの読み取りを開始すると、最後からではなく最初から読み取ります (その後、明らかにバイトはありません!)。

于 2010-01-09T04:04:59.000 に答える