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

Sae*_*ati 39 asp.net-mvc

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

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

Lot*_*tfi 33

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

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


Ada*_*SFT 26

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

从文档说明如果你不使用〜你不会得到结果的任何改变:"备注如果指定的内容路径不是以波浪号(〜)字符开头,则此方法返回contentPath不变."

  • 另请注意,在MVC4中,其中一些是自动处理的,例如脚本标签,您只需指定src ="〜/ scripts/whatever.js",razor将自动为您现在映射,而无需使用url.content (7认同)

Fox*_*x32 16

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