【发布时间】:2010-07-21 15:01:08
【问题描述】:
我正在使用最新版本的 MVCContrib 并尝试通过以下辅助方法包含样式表:
<%=Html.Stylesheet(Links.Content.Site_css)%>
渲染的路径错误计算为:
<link type="text/css" rel="stylesheet" href="/content/css/Content/Site.css" />
实际路径应该是:/Content/Site.css
这是一个错误吗?
以下方法可以正常工作:
方法一:<%=Html.Stylesheet("~/Content/Site.css")%>
方法二:<link type="text/css" rel="stylesheet" href="<%:Links.Content.Site_css %>" />
更新 1:
Links.Content.Site_css 表示使用 T4MVC 自动生成的静态字段
更新 2: 下面是 T4MVC 生成的代码的样子……
namespace Links {
...snipped for brevity...
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public static class Content {
private const string URLPATH = "~/Content";
public static string Url() { return T4MVCHelpers.ProcessVirtualPath(URLPATH); }
public static string Url(string fileName) { return T4MVCHelpers.ProcessVirtualPath(URLPATH + "/" + fileName); }
public static readonly string Site_css = Url("Site.css");
}
【问题讨论】:
-
Links.Content.Site_css到底是什么?一个常数?一个领域?还有什么?它有什么价值? -
达林,请参阅我更新的问题以澄清 Links.Content.Site_css
-
Links.Content.Site_css的实际值是多少?如果它以“~/”开头,则不会使用自动路径。如果您希望助手正常工作,它应该等于Site.css。 -
Ryan 问的是 this 的评估结果,应该是“/Content/Site.css”。那么问题就变成了:为什么 Html.Stylesheet 不能处理这个?我不熟悉这个 API(但我拥有 T4MVC)。