我为什么要使用@ Url.Content(“〜/ blah-blah-blah”)?

时间:2012-05-06 07:45:07

标签: asp.net-mvc

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

,有什么好处,优点等

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

3 个答案:

答案 0 :(得分:33)

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

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

答案 1 :(得分:26)

映射虚拟路径是唯一的目的。 如果您不需要映射它们并且确定您的应用程序或其文件夹不会位于其他应用程序之下,那么它将无法满足您的任何目的。

从文档说明如果你不使用〜你的结果不会改变: “答记者问 如果指定的内容路径不以波浪号(〜)字符开头,则此方法将返回contentPath不变。 “

答案 2 :(得分:16)

如果您的应用程序根路径不是服务器的根路径,那么它很有用。 Url.Content(“〜/”)返回应用程序的根文件夹。