You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Core 6 Razor Pages中显示FastReport报表

在.NET Core 6 Razor Pages中显示FastReport报表

解决这个问题的核心是利用Razor Pages的PageModel属性传递报表对象,再在页面中调用FastReport的Web渲染方法。具体步骤如下:

1. 配置FastReport服务

首先在Program.cs中注册FastReport的服务和中间件,确保Web环境能处理报表渲染:

var builder = WebApplication.CreateBuilder(args);

// 注册FastReport服务
builder.Services.AddFastReport();

builder.Services.AddRazorPages();

var app = builder.Build();

// 启用FastReport中间件
app.UseFastReport();

// 其他中间件配置
app.UseStaticFiles();
app.UseRouting();

app.MapRazorPages();

app.Run();

2. 在PageModel中处理报表逻辑

在对应的PageModel类中,添加用于存储Web报表对象的公共属性,然后在请求方法(如OnGet)中完成报表的加载和数据注册:

using FastReport;
using FastReport.Web;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.FileProviders;

namespace YourProjectNamespace.Pages;

public class ConsumerStatementModel : PageModel
{
    private readonly IWebHostEnvironment _env;
    // 定义公共属性,供页面访问
    public WebReport WebReport { get; set; }

    public ConsumerStatementModel(IWebHostEnvironment env)
    {
        _env = env;
    }

    public void OnGet()
    {
        // 替换为你的实际数据源
        var data = GetConsumerData();

        using var report = new Report();
        var reportPath = _env.WebRootFileProvider.GetFileInfo("Reports/ConsumerStatement.frx")?.PhysicalPath;
        report.Load(reportPath);
        report.RegisterData(data, "RefData");

        // 初始化WebReport,关联已加载的报表
        WebReport = new WebReport();
        WebReport.Report = report;
    }

    // 示例:获取数据源的方法
    private object GetConsumerData()
    {
        // 这里返回你的实际数据集合,比如List<Consumer>
        return new List<object>();
    }
}

3. 在Razor页面中渲染报表

在对应的.cshtml页面中,直接调用WebReport的Render()方法生成报表HTML:

@page
@model YourProjectNamespace.Pages.ConsumerStatementModel
@{
    ViewData["Title"] = "消费对账单";
}

<h2>消费对账单报表</h2>

@* 渲染FastReport报表 *@
@model.WebReport.Render()

补充说明

  • 相比TempData/ViewData,直接在PageModel中定义属性是更稳妥的方式,避免大对象序列化的问题。
  • 确保Reports/ConsumerStatement.frx文件存在于wwwroot目录下,否则WebRootFileProvider无法找到。

内容的提问来源于stack exchange,提问作者Rehan Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 08:22:44