2011-06-07 74 views
2

我不能在我的生活中想到这个功能的任何需要。 MSDN说它“将虚拟(相对)路径转换为应用程序绝对路径”。我的问题是,为什么你首先使用相对路径?ASP.NET MVC - 什么是Url.Content()的用例?

为了说明,假设您在Scripts/awesome.js中有一个文件。你可以让这个做

<script src="@Url.Content("~/Scripts/awesome.js")"></script> 

但是你可以使用直接的路径很容易找到它:

<script src="/Scripts/awesome.js"></script> 

这同样适用于任何图像,C​​SS或任何其他静态文件,你真可能需要参考。任何人都可以告诉我需要这个功能的情况吗?

编辑:

感谢您的回答。我在看这个的原因是,当我尝试对不同深度的路径进行重写时,这是最突破的。请参阅ASP.NET MVC UrlHelper.GenerateUrl exception: "Cannot use a leading .. to exit above the top directory"

+0

内容是一个可怕的名字,我曾经认为它与Content文件夹有关。它只是和ResolveUrl做同样的事情。 – 2011-06-07 22:51:06

回答

4

如果您的应用程序作为子应用程序运行(在文件夹内运行该站点),则可能有类似http://server.com/app/..的路径。在这种情况下,到/Scripts/...的绝对路径将失败。

+1

谢谢,我刚刚在与同行的讨论中发现了这一点。它看起来好像被过度使用,但是对于在域的根目录上运行的应用程序而言,而不是在虚拟目录中。 – ItsJason 2011-06-07 15:03:50