文件是空的,我不明白为什么。 Asp.net mvc 文件结果

发布于 2024-08-17 10:15:19 字数 641 浏览 4 评论 0原文

我正在尝试使用内置的 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 字节。

I am trying to use the built in asp.net file result to return a file that I am trying to make through a file stream. I am using Dday.ical to make my calendar for export

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

Here is my 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");       
}

When I download the file it is 0bytes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疯了 2024-08-24 10:15:19

尝试重置流的位置:

calendarStream.Position = 0;

这样,当 FileResult 开始从流中读取时,它将从头开始而不是从末尾读取(之后显然没有更多字节了!)。

Try resetting the stream's position:

calendarStream.Position = 0;

That way when the FileResult starts reading from the stream it will read it from the beginning instead of from the end (after which there are obviously no more bytes!).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文