【发布时间】:2011-06-28 13:27:12
【问题描述】:
所以我开始使用 <%: Url.Content(~/site/blah) %> 语法作为 CSS、JScript 和图像 URL 的标准 - 确实解决了很多问题;并且至少在 WebForms 和 Razor 页面之间是一致的(并非我的所有开发人员都会使用 Razor,但他们仍将在我制作的这个平台上工作)。
但是,对于我目前正在做的事情,我真的可以用一种方法来获取写在 Razor 页面中的相对 URL,并在运行时将其解析为正确的服务器端文件,然后再打开它回到客户端的绝对网址。 Url.Content 对相对 URL 没有任何作用。
所以,基本上,我想要 Razor 级别的 ResolveUrl 或 ResolveClientUrl。
我希望这样可以在我的一些 MVC 视图中启用更简洁(并且对重命名更宽容)的资源路径,这些视图可以是离根目录更远的几个文件夹,并且其内容文件夹更容易表示为相对路径 - 所以我可以:
folder\folder\views\shared\layout.cshtml
和folder\folder\content\site.css
(我还推断使用布局页面来反映 ResolveUrl 解决的问题类型以及 WebForms 所做的重新定位)
按原样使用Url.Content,我需要指定完整路径:
Url.Content("~/folder/folder/content/site.css")
但我想要的是
Url.Content("../../site.css")
当然,不管当前请求的路径中有多少条路径,都要让它工作。
当然,如果我放弃 Url.Content 调用并仅依赖 url rebase,我可以让它在 WebForms 中工作。
Razor 中是否有任何等价物?
【问题讨论】:
标签: asp.net asp.net-mvc razor