使用ViewAsPdf时无法加载模型View

kr98yfug  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(109)

我正在开发一个使用MVC(.NET 7.0)的Web应用程序,我需要将带有数据的视图转换为PDF,为此我使用Rotativa。
问题是,当我调用我的方法将视图

<a href="@Url.Action("ConvertToPdf", "Home", new { html = ViewData["html"] })">Convert to PDF</a>

字符串
未加载模型并引发异常
对象引用未设置为对象的示例。
这是可以理解的,因为代码没有到达加载视图数据的操作。
这是我的控制器Action

public ActionResult ConvertToPdf()
    {
      return new ViewAsPdf("ListUsers", _listUsers);
    }


这是我想要转换的列表视图的操作

public async Task<IActionResult> ListUsers()
{
    _listUsers = await _context.Users.ToListAsync();
    return View(_listUsers);
}


任何想法,我如何可以加载数据到我的视图时,导出到PDF?我使用 ViewAsPdf,因为我运行Rotativa.AspNETCOre nuget包

bihw5rsg

bihw5rsg1#

我终于自己找到了答案。
只需要从我的上下文加载数据

var model = _context.Users.Select(u => new Users
    {
        Username = u.Username,
        OfficeLocation= u.OfficeLocation,
        ContractType = u.ContractType,
        UserDept = u.UserDept
    });
return new ViewAsPdf("ListUsers", model) { FileName = "PDF File.pdf"};

字符串
PDF格式的视图转换工作得很好。

相关问题