ASP.NET应用程序代码中的相对路径

kma*_*ks2 6 .net c# asp.net

不熟悉ASP.NET我不确定我的问题的最佳解决方案.我有一行代码如:

xDoc.Load("Templates/template1.cfg");
Run Code Online (Sandbox Code Playgroud)

xDoc是一个XmlDocument.在我的项目中,在顶层有一个名为Templates的目录.当我在调试模式下运行项目时,我得到了一个DirectoryNotFoundException,显然它正在寻找模板目录C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\Templates.

如何在没有硬编码的情况下正确指向该目录?

Adr*_*ode 17

Server.MapPath - 返回相对路径的路径; ~确保相对路径与应用程序根相关

xDoc.Load(Server.MapPath("~/Templates/template.cfg"));
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.你和@asawyer都是现货.问题解决了. (2认同)

Joe*_*Joe 10

我可能会用

xDoc.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Templates", "Template.cfg"));
Run Code Online (Sandbox Code Playgroud)

这使您的XML加载代码独立于ASP.NET.如果您要在Windows窗体应用程序中重复使用它,则会提供相对于包含Windows窗体可执行文件的目录的路径.