【发布时间】:2012-01-20 05:51:24
【问题描述】:
这听起来是一个很简单的问题,但我一辈子都找不到答案。如何在控制器和/或模型中将根相对 url (~/my/path) 转换为虚拟路径 (/mywebsite/my/path)?
在视图上它很容易做到,只需致电@Url.Content("~/my/path/")。使用Server.MapPath("~/my/path") 在控制器中获取物理路径同样简单。但我不知道如何在控制器中获取虚拟路径。
我的主要问题是我有一个图像的根相对路径,我将传递给将返回的 JSON 对象。在大多数情况下,这将由 javascript 读取并放在页面上的某个地方,我不能在我的 javascript 代码中使用@Url.Content。此外,在某些情况下,此 JSON 对象将被不理解 ~ 含义的外部应用程序使用。
【问题讨论】:
-
Url.Content 在控制器中也应该可以正常工作(它返回一个字符串)。它在命名空间 System.Web.Mvc
-
为什么需要控制器的虚拟路径?
-
@Phill - 我实际上需要在 JSON 对象中返回的图像的虚拟路径。我会更新问题。
标签: asp.net asp.net-mvc-3 virtual-path