繁体   English   中英

在MVC3中使用Server.MapPath

[英]Using Server.MapPath in MVC3

我有代码

string xsltPath = System.Web.HttpContext.Current.Server.MapPath(@"App_Data") + "\\" + TransformFileName

它回来了

C:\\inetpub\\wwwroot\\websiteName\\SERVICENAME\\App_Data\\FileName.xsl

为什么我要获取ServiceController, SERVICENAME的路径? 我想要的App_Data路径

C:\\inetpub\\wwwroot\\websiteName\\App_Data\\FileName.xsl

您需要指定要从虚拟根目录开始:

string xsltPath = Path.Combine(System.Web.HttpContext.Current.Server.MapPath(@"~/App_Data"), TransformFileName);

此外,最好使用Path.Combine来组合路径而不是连接字符串。 Path.Combine将确保您不会在双路径分隔符的情况下结束。

编辑

您能定义“绝对”和“相对”路径以及它们与“物理”和“虚拟”路径的比较方式吗?

MSDN对相对路径,物理路径和虚拟路径有很好的解释 看看那里。

到目前为止给出的答案是你正在寻找的,但我认为,在你的具体情况下,你真正需要的是这个:

AppDomain.CurrentDomain.GetData("DataDirectory").ToString()

如果在未来版本的MVC或ASP.NET中该目录名称发生更改,这仍将返回App_Data目录的文件路径。

尝试这样做(@"~/App_Data") ~/表示根目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM