2
string path = context.Server.MapPath("~/Temp");

或者

string path = context.Server.MapPath("/Temp");

一样吗?

我知道 '~' 代表 root 但想知道 diff bw~/folder/folder

4

1 回答 1

9

服务器控件中的绝对和相对路径引用具有以下缺点:

  • 绝对路径在应用程序之间不可移植。如果移动绝对路径指向的应用程序,链接将断开。

  • 如果将资源或页面移动到不同的文件夹,则客户端元素样式中的相对路径可能难以维护。

为了克服这些缺点,ASP.NET 包含了 Web 应用程序根运算符 (~),您可以在指定服务器控件中的路径时使用它。ASP.NET 将 ~ 运算符解析为当前应用程序的根。

请参阅http://msdn.microsoft.com/en-us/library/ms178116(v=vs.100).aspx

~/解析为应用程序根。

/解析为站点根目录。

当呈现服务器资源(如控件或视图)时,~/路径会根据应用程序的结构和上下文解析为站点根路径(因为~/对 Web 浏览器没有意义)。

为简化起见,应用程序根目录 ( ~/) 几乎总是 ASP.Net 应用程序(Web 表单和 MVC)中的正确选择。

于 2012-10-20T09:17:24.107 回答