c# - 如何在 MVC 核心 c# 中使用 SaveOnServerPath Rotativa?
问题描述
我想ViewAsPdf
用在服务器路径上保存文件但不能在 MVC 核心中工作
我的代码
var pdfname = String.Format("{0}.pdf", Guid.NewGuid().ToString());
var path = Path.Combine(@"MyPathProject\wwwroot\doc\Claim\Request", pdfname);
path = Path.GetFullPath(path);
var pdfResult = new ViewAsPdf
{
ViewName = "_ToPDF",
Model = memo,
FileName = pdfname,
SaveOnServerPath = path
};
启动.cs
配置功能
...
RotativaConfiguration.Setup(env.WebRootPath);
...
我的代码没有任何错误但文件未保存
解决方案
如果您使用 asp.net core 3.0 或更高版本,您可以尝试将其注入IWebHostEnvironment
到控制器类中,然后您可以使用它IWebHostEnvironment.WebRootPath
来获取当前的 Web 根路径“wwwrot”。
更多细节,您可以参考下面的测试演示
public class HomeController : Controller {
private IWebHostEnvironment _hostingEnvironment;
public HomeController(IWebHostEnvironment environment) {
_hostingEnvironment = environment;
}
[HttpGet]
public IActionResult Get() {
var path = Path.Combine(_hostingEnvironment.WebRootPath, @"doc\Claim\Request\Sample.pdf");
return View();
}
}
结果:
推荐阅读
- c++ - c ++检查值是否在范围内(A < B < C verse A
我想检查值 B 是否在 A 和 C 之间,我的第一次尝试是
if(A < B < C)
,但是结果不正确,我尝试后if(A < B && B < C)
效果很好第二种方法对我来说很直观,但我不知道为什么第一种方法会失败以及 C++ 在
- reactjs - 为什么我的子组件“主题”在酶“安装”中未定义?
- android - 在 INSERT 上使用正确的数据类型 Flutter SQLite 数据类型不匹配
- docker - 与 Docker run 共享我的主文件夹的子文件夹
- javascript - 轮询比设置多个 setTimeout() 更好
- javascript - 仅当我单击 Material-UI Grid 时才使用最新数据更新
- nginx - Nginx 配置将所有 URL 发送到主页
- javascript - 使用数组数据渲染时单选按钮无法正常工作
- python - 如何在 python 的列表理解中使用赋值操作并将以下迭代代码转换为它?
- walmart-api - 请求失败,状态码 403(特定于 Walmart API)