c# - 从文件的根文件夹获取相对路径

标签 c# asp.net-mvc

我无法为文件创建正确的下载链接。

这是预期的工作结果(正确路径):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/

相关文章:

javascript - 我可以通过 Ajax 请求将 javascript 从 MVC Controller 返回到 View 吗?

c# - Entity Framework 5 : Get Auto_Increment value before insert

c# - SignalR 2、Autofac 3.5、MVC 5 和 OWIN : How to inject SignalR hub into a controller?

c# - .NET HttpWebRequest 速度与浏览器

c# - C#数据库应用程序在清理表时不断崩溃(?)

c# - 如何查看父 View 模型 MVC3 C#?

asp.net-mvc - 有什么方法可以避免 iisexpress 每次构建时加载 DLL 时的启动延迟?

c# - 如何在 .NET 6 类库中初始化 ILogger?

c# - 无法找到 ViewModel 的 View ,即使 SelectedAssembly 被覆盖

c# - 轮询属性的最简单 C# 代码?