Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET MVC中指定文件路径_C#_Asp.net Mvc 3_File Io - Fatal编程技术网

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

C# 如何在ASP.NET MVC中指定文件路径,c#,asp.net-mvc-3,file-io,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(Syst

我想指定文件的虚拟路径,但无法指定

这是我的密码:

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(电子公文包)\HobbyHomesWebApp\ePortfolio\PortFolioContent\1\Assignments
但它正在走这条路
E:\HOBBYHOMES(电子公文包)\HobbyHomesWebApp\ActivityPostin\Images\ePortfolio\PortFolioContent\1\Assignments\Exhb_1_1.jpg

我不明白为什么会这样。请帮我试试
string filepath=Server.MapPath(“~/..jpg”)

试试
字符串filepath=Server.MapPath(“~/…jpg”)

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

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

尝试这样做:

Path.Combine(Server.MapPath("~/"),("ePortfolio\\PortFolioContent\\" + Course_Id + "\\Assignments\\Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg"));
从理论上讲,它的结果和你之前失败的答案是一样的。实际上,它可能会给出完全不同的答案


这里还有一个最近的问题(我现在找不到),它强调了有时Server.MapPath(“~/…等”)在重写的请求路径上会出现错误行为。您正在重写试图形成此路径的请求吗?

尝试执行以下操作:

Path.Combine(Server.MapPath("~/"),("ePortfolio\\PortFolioContent\\" + Course_Id + "\\Assignments\\Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg"));
从理论上讲,它的结果和你之前失败的答案是一样的。实际上,它可能会给出完全不同的答案


这里还有一个最近的问题(我现在找不到),它强调了有时Server.MapPath(“~/…等”)在重写的请求路径上会出现错误行为。您正在重写试图形成此路径的请求吗?

我没有一个好的解决方案供您使用,但以下是您迄今为止尝试的方法不起作用的原因。我不认为~可以扩展到Windows上文件路径中的任何内容--一些命令shell可以这样做,但文件系统本身不能将基于当前的工作目录(可能是您正在运行的可执行文件的目录,或者其他同样无用的目录)。我没有一个好的解决方案供您使用,但以下是您迄今为止尝试的方法不起作用的原因。我不认为~可以扩展到Windows上文件路径中的任何内容--一些命令shell可以这样做,但文件系统本身不能将基于当前工作目录(可能是您正在运行的可执行文件的目录,或者其他同样无用的目录).hey thanx 4 d reply..我使用了你的方法,但问题仍然没有解决。请看我更新了我的问题。hey thanx 4 d reply..我使用了你的方法,但问题仍然没有解决。请看我更新了我的问题。hey thanx 4 d reply,但这条路径有问题..行为我必须只使用这条路径您要走下面的路径字符串filepath=Server.MapPath(“~/ePortfolio/e-Portfolio/PortFolioContent/”+课程Id+“/Assignments/Exhb+PortfolioID+”+“+ChandidateID+”.jpg”);1) E:\HOBBYHOMES(电子公文包)\HobbyHomesWebApp\ePortfolio\PortFolioContent\1\Assignments 2)E:\HOBBYHOMES(电子公文包)\HobbyHomesWebApp\ActivityPostin\Images\ePortfolio\PortFolioContent\1\Assignments\Exhb\u 1\u 1.jpg我看不到文件夹电子公文包。你能再次更新你的问题和你想要的确切路径吗?按照我的说法,你想要第二条路径,得到第一条路径。嘿,sry,我在编辑时粘贴了错误的路径,而thanx,不管怎样,它现在工作了:)嘿,thanx,回答,但这条路径有问题吗?我一定要只使用这条路径。你要做的是以下路径字符串filepath=Server.MapPath(“~/ePortfolio/e-Portfolio/PortFolioContent/”+课程Id+“/Assignments/Exhb+PortfolioID+”+“.jpg”);1) E:\HOBBYHOMES(电子公文包)\HobbyHomesWebApp\ePortfolio\PortFolioContent\1\Assignments 2)E:\HOBBYHOMES(电子公文包)\HobbyHomesWebApp\ActivityPostin\Images\ePortfolio\PortFolioContent\1\Assignments\Exhb\u 1\u 1.jpg我看不到文件夹电子公文包。你能再次更新你的问题和你想要的确切路径吗?按照我的说法,你想要第二条路径,得到第一条路径。嘿,sry,我在编辑时粘贴了错误的路径,而thanx现在正在工作:)不,我没有再次调用它,我这样写的字符串filepath=Server.MapPath(~/ePortfolio/PortFolioContent/)+课程Id+“/Assignments/Exhb+item.PortfolioID+“+item.ChandidateID+”.jpg”);早些时候,我把它放在了执行它的文件夹中,所以这可能是个问题。所以现在我让它工作了:)不,我再次调用它,我像这样写字符串filepath=Server.MapPath(“~/ePortfolio/PortFolioContent/”+Course\u Id+“/Assignments/Exhb\u”+item.PortfolioID+“\u”+item.ChandidateID+”.jpg”);之前我把它放在了执行它的文件夹中,所以这可能是个问题。所以现在我让它工作了:)