C# 从asp.net文件夹中的aspx页面中查找根目录中的文件夹

C# 从asp.net文件夹中的aspx页面中查找根目录中的文件夹,c#,asp.net,C#,Asp.net,我有一个aspx页面可以将图像上传到文件夹中。aspx页面位于名为admin的文件夹中。 如果我将aspx页面保留在根目录中,我就可以将文件上载到映像文件夹中,因为两者都在根目录中。 但是当我将aspx页面保存在文件夹中时,它显示找不到路径“C:\Users\…”的一部分。 所以,我如何提供路径,以便我能够从文件夹中的页面上传文件夹中的图像。 下面是我的代码: if( fu_subcat.PostedFile.ContentLength>0 ) {

我有一个aspx页面可以将图像上传到文件夹中。aspx页面位于名为admin的文件夹中。 如果我将aspx页面保留在根目录中,我就可以将文件上载到映像文件夹中,因为两者都在根目录中。
但是当我将aspx页面保存在文件夹中时,它显示
找不到路径“C:\Users\…”的一部分。

所以,我如何提供路径,以便我能够从文件夹中的页面上传文件夹中的图像。

下面是我的代码:

      if( fu_subcat.PostedFile.ContentLength>0 )
        {
          fn =Path.GetFileName(fu_subcat.PostedFile.FileName);
            fu_subcat.SaveAs(Server.MapPath("imag/" + fn));
        }
编辑

它将路径映射为:
找不到路径“C:\Users\lenovo\Documents\visualstudio 2010\WebSites\emarket\Admin\imag”的一部分


但是我在emarket中的文件夹是
emarket\imag
not
emarket\Admin\imag

最好将图像保存在一个单独的内容文件夹中,然后使用tilda以相对路径引用图像,例如~“content/image”

使用~将使您到达应用程序的虚拟根目录,因此Server.MapPath(“~/imag/…”)应该这样做。

发生这种情况是因为当您从

/Admin/page.aspx

Server.MapPath返回一个相对于/Admin/-的路径,因此最终路径将是/Admin/imag/。。。要从根目录设置路径,应在路径前面添加/

一定是

fu_subcat.SaveAs(Server.MapPath("/imag/" + fn));
注意/在字符串前面

或者,也可以添加~tilde

fu_subcat.SaveAs(Server.MapPath("~/imag/" + fn));

它指向当前ASP.net应用程序的根。如果应用程序在虚拟目录中运行,并且作为全局应用程序的一部分,这将非常有用。

content folder??这是什么??我有一个不同的文件夹来保存图像,但我不知道什么是内容文件夹。请解释一下。好的,这很好,使用tilda是我的主要观点,因为您需要一个相对路径,例如“~/image/”将根据项目配置的位置找到路径。