要实现ASP.NET Core SSRS查看器,可以按照以下步骤进行:
首先,确保已安装Microsoft.ReportingServices.ReportViewerControl.WebForms包。可以使用NuGet包管理器或手动下载并添加到项目中。
在Startup.cs文件中的ConfigureServices方法中,添加以下代码以注册ReportViewerControl服务:
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/ReportViewer", "/ReportViewer"); // 路由配置
});
services.AddSession();
services.AddHttpContextAccessor();
services.AddAntiforgery(options => options.HeaderName = "X-CSRF-TOKEN");
services.AddTransient();
@model MyProject.Models.ReportViewerModel
@{
ViewData["Title"] = "Report Viewer";
Layout = null;
}
@ViewData["Title"]
@if (Model != null && Model.ReportPath != null && Model.Parameters != null)
{
@foreach (var parameter in Model.Parameters)
{
}
}
@section Scripts {
}
public class ReportViewerModel
{
public string ReportPath { get; set; }
public Dictionary Parameters { get; set; }
}
public class ReportViewerController : Controller
{
private readonly IReportViewerProvider _reportViewerProvider;
public ReportViewerController(IReportViewerProvider reportViewerProvider)
{
_reportViewerProvider = reportViewerProvider;
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(string reportPath, string parameters)
{
var model = new ReportViewerModel
{
ReportPath = reportPath,
Parameters = JsonConvert.DeserializeObject>(parameters)
};
return PartialView("_ReportViewerPartial", model);
}
public IActionResult ExportToPdf(string reportPath, string parameters)
{
var model = new ReportViewerModel
{
ReportPath = reportPath,
Parameters = JsonConvert.DeserializeObject>(parameters)
};
var pdfBytes = _reportViewerProvider.ExportToPdf(model);
return File(pdfBytes, "application/pdf", "Report.pdf");
}
}
public class