39

我无法理解我可以从Url.Content()ASP.NET MVC 中的方法获得的好处。例如,您看到src='@Url.Content("~/Contents/Scripts/jQuery.js")'. 我为什么要使用它?使用它可能存在哪些原因?与使用普通的旧简单引用相比,有什么好处、优势等src='/scripts/jquery.js

更新:根据答案,我想知道除了处理虚拟文件夹之外是否还有其他使用它的原因?因为我还没有看到太多使用虚拟应用程序(这当然并不意味着它没有被使用那么多)。

4

3 回答 3

33

通常,您的 Web 应用程序发布为:www.yoursite.com/。~ 字符匹配站点 / 的根。

但是,如果您使用虚拟目录 www.yoursite.com/mywebapp/ 发布站点,则 ~ 字符将匹配“/mywebapp/”。使用“/”字符硬编码 URL 会导致错误的页面引用。

于 2012-05-06T07:54:10.780 回答
26

映射虚拟路径是它的唯一目的。如果您不需要映射它们并且确定您的应用程序或它的文件夹不会位于其他应用程序下,那么它不会为您服务。

从文档注释中,如果您不使用 ~,则结果不会发生任何变化:“备注如果指定的内容路径不以波浪号 (~) 字符开头,则此方法返回 contentPath 不变。”

于 2012-05-06T17:45:47.487 回答
16

如果您的应用程序根路径不是服务器的根路径,这将很有用。Url.Content("~/") 返回应用程序的根文件夹。

于 2012-05-06T07:49:10.753 回答