2012-05-23 35 views
0

我想指定文件的虚拟路径,但我无法这样做。如何在ASP.NET MVC中指定文件路径

这里是我的代码:

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-投资组合)\ HobbyHomesWebApp \电子档案袋\ PortFolioContent \ 1个\分配
但走这条路
E:\ HOBBYHOMES(E-投资组合)\ HobbyHomesWebApp \ ActivityPostin \图片\电子档案袋\ PortFolioContent \ 1 \作业\ Exhb_1_1.jpg
我米没有tanding这是为什么干活so.Please帮我

+1

我没有一个很好的解决方案,但这是为什么你迄今为止尝试过的不起作用。我不认为〜扩展到Windows上的文件路径中的任何东西 - 有些命令shell会这样做,但不是文件系统本身。 '..'将基于当前的工作目录(这可能是您正在运行的可执行文件的目录,或者同样无用的东西)。 – SirPentor

回答

2

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

+0

嗨thanx 4 d回复..我用你的方法,但仍然是问题nt resolved.Please看到我hav更新了我的问题。 – user1274646

0

您可以使用@ Url.Content( “〜/内容/图片/ YourImageName.png”)

+0

嗨thanx 4 d回复,但是这个道路上的问题与wats的问题..我只能使用这个路径 – user1274646

+0

请看我有更新我的问题。 – user1274646

+0

你会为以下路径 字符串文件路径=使用Server.Mappath( “〜/电子档案袋/电子档案袋/ PortFolioContent /” + COURSE_ID + “/任务/ Exhb_” + PortfolioID + “_” + ChandidateID +“.jpg”); 1)E:\ HOBBYHOMES(E-PORTFOLIO)\ HobbyHomesWebApp \电子公文包\ PortFolioContent \ 1个\分配 2)E:\ HOBBYHOMES(E-PORTFOLIO)\ HobbyHomesWebApp \ ActivityPostin \ IMAGES \电子公文包\ PortFolioContent \ 1 \作业\ Exhb_1_1.jpg 我无法看到文件夹的e-组合。你能否再次更新你的问题,你想要什么确切的路径?按照我,你想要第二条路,获得第一条路。 –

0

尝试做这样的事情:

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

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

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

+0

nopes m nt再次调用它我这样写它 string filepath = Server.MapPath(“〜/ ePortfolio/PortFolioContent /“+ Course_Id +”/ Assignments/Exhb_“+ item.PortfolioID +”_“+ item.ChandidateID +”.jpg“);早些时候,我把它放在它正在执行的文件夹中,这可能是问题。所以现在我得到了它的工作:) – user1274646

相关问题