我无法为文件创建正确的下载链接。
这是预期的工作结果(正确路径):http://localhost:60000/ManualMeterDocuments/client/Exports/client_0985-20160318-211554.xlsx
但这就是 MVC 的作用: http://localhost:60000/ManualMeters/~/ManualMeterDocuments/client/Exports/client_0985-20160318-211554.xlsx
ManualMeters/=> Controller 。
在我的 Controller Action 中,我得到了物理路径: C:\Data\Test\source\Portal\Portal\ManualMeterDocuments\Client\Exports\Client_0985-20160318-214256.xlsx 并尝试返回相对路径。
我尝试了不同的方法,但无法正确处理。
var virtualFilePath = exportFile.Replace(Server.MapPath("~"), "~/");
return Json(virtualFilePath, JsonRequestBehavior.AllowGet);
这是从 Controller 返回到 jquery ajax 调用的 var virtualFilePath 中的值。从那里我将它绑定(bind)到 <a>
href 标签:
ManualMeterDocuments\Client\Exports\client_0985-20160318-215243.xlsx
因此该路径没问题,但不知何故某处 ManualMeters/被添加到链接中。
编辑:这是我应该能够放入 href 属性以使下载工作的内容: 测试
最佳答案
这修复了它:..\
var virtualFilePath = Path.Combine(@"..\" + exportFile.Replace(Server.MapPath("~"), ""));
返回:
http://localhost:60000/ManualMeterDocuments/Client_0985/Exports/client_0985-20160318-224049.xlsx
为什么要结束这个问题?
关于c# - 从文件的根文件夹获取相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36094147/