如何在ASP.NET MVC中指定文件路径

时间:2012-05-23 02:49:37

标签: c# asp.net-mvc-3 file-io

我想指定文件的虚拟路径,但我无法这样做。

这是我的代码:

int Course_Id = 1;
int PortfolioID=1;
int ChandidateID=1;

string filepath = Server.MapPath("~/ePortfolio/PortFolioContent/" + Course_Id + "/Assignments/Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg");

if(System.IO.File.Exists((filepath)))
{                            
    ViewBag.Thumbnail = filepath;
}

当我使用Server.MapPath时,它从其他路径获取数据:
我的原始路径是:
E:\ HOBBYHOMES(E-PORTFOLIO)\ HobbyHomesWebApp \电子公文包\ PortFolioContent \ 1个\分配
但它正走这条路 E:\ HOBBYHOMES(E-投资组合)\ HobbyHomesWebApp \ ActivityPostin \图片\电子档案袋\ PortFolioContent \ 1个\作业\ Exhb_1_1.jpg
我不明白为什么这样做。请帮帮我

3 个答案:

答案 0 :(得分:2)

尝试string filepath = Server.MapPath("~/... ...jpg");

答案 1 :(得分:0)

您可以使用@ Url.Content(“〜/ Content / Images / YourImageName.png”)

答案 2 :(得分:0)

尝试做这样的事情:

Path.Combine(Server.MapPath("~/"),("ePortfolio\\PortFolioContent\\" + Course_Id + "\\Assignments\\Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg"));

从理论上讲,它会导致您之前失败的相同答案。在实践中,它可能会产生完全不同的答案。

这里还有一个最近的问题(目前我找不到),它突出显示有时Server.MapPath(“〜/ .. etc ..”)在重写的请求路径上行为不端。您是否正在重写尝试形成此路径的请求?