为什么我遇到@Href(“路径”)而不是@ Url.Content的问题?

时间:2012-05-11 21:10:56

标签: asp.net-mvc-3 razor

我正在写一个问题,问为什么@Href无法正确识别路径。

E.g。

@helper CSS(string cssFile, string media = "screen") {
    <link href="@Href("~/content/stylesheets/" + @cssFile)" rel="stylesheet" type="text/css" media="@media" /> 
}

尝试在

中找到资源时抛出sereval js 404错误
  • http:// localhost / content
  • http:// localhost / dashboard / content

从来没有我想要的东西:

  • http:// localhost / MySite / content

所以他们找到了有趣的部分:@Url.Content代替@Href工作得很好! 为什么!?

因此这不是更大的问题,问题是在App_Code中@Url在上下文中不存在。那我可以用什么呢。

1 个答案:

答案 0 :(得分:1)

MSDN是你的朋友。来自WebPageRenderingBase.Href方法:

  

在派生类中重写时,使用指定的内容构建URL   参数。

来自UrlHelper.Content Method

  

将虚拟(相对)路径转换为应用程序绝对路径。

路径中的波浪号使其成为虚拟路径,显然@Href()无法理解。