【发布时间】:2020-03-15 18:17:09
【问题描述】:
我正在尝试使用控制器在我的应用程序中打开位于文件夹 (Content/extras) 内的 PDF 文件,但不适合我。我收到的错误是
“找不到文件'C:/..../Content/extras/PDFName'”异常详细信息:System.IO.FileNotFoundException: 找不到文件'C:/..../Content/extras/ PDFName'"
所以基本上它说它找不到文件,但文件在那个位置是 100% 并且名称是正确的。我确实注意到,虽然它试图找到“PDFName”而不是“PDFName.pdf”,所以这可能是问题所在,并且控制器中的“MimeMapping”编码不正确。
这是我的代码:
控制器
public FileResult PDFFlyer()
{
string path = Server.MapPath(String.Format("~/Content/extras/PDFName"));
string mime = MimeMapping.GetMimeMapping(path);
return File(path, mime);
}
路由配置
routes.MapRoute(
name: "PDFFlyer",
url: "{filename}",
defaults: new { controller = "PDF", action = "PDFFlyer", filename =
UrlParameter.Optional }
);
cshtml文件
<a class="dropdown-item" href="@Url.Action("PDFFlyer", "PDF")" target="_blank">PDF Flyer</a>
我做错了什么?我再次猜测是“MimeMapping”控制器代码不正确,因为它似乎不是在寻找“.pdf”。并且只是在寻找 PDFName,但不确定出了什么问题。有什么建议么?谢谢。
【问题讨论】:
-
PDFName 只是一个模拟文件名还是没有 .pdf 扩展名的实际文件名?
-
是一个mock,是为了反映pdf文件的文件名。
-
在您的问题文本中,您确实提到缺少扩展名,这就是我要问的原因 - 那么现在是真的吗?
-
我不明白你的问题
-
我问过您“PDFName”是否只是一个模拟,您回答“是”,但在您的问题中,您想知道为什么缺少“PDFName”的扩展名。如果这只是对您的问题的模拟-一切都很好。如果没有,那么为什么它的文件名中没有像您在问题中所说的那样具有 pdf 扩展名?
标签: c# asp.net asp.net-mvc pdf model-view-controller