我为 ASP.NET MVC UrlHelper 创建了一个简单的扩展方法。它不接受任何参数,因为它的工作是从配置中查找样式表文件的名称并将 URL 返回到样式表。扩展方法大致如下:
public static string SiteStylesheet(this UrlHelper urlHelper)
{
var scriptFilename = UserInterfaceConfiguration.GetSection()
.Mvc.SiteStylesheet;
return urlHelper.Content(string.Format("~/Assets/Scripts/{0}",
scriptFilename));
}
我像这样使用它:
<link href="<%= Url.SiteStylesheet() %>" rel="Stylesheet" type="text/css" />
但是,该方法没有被执行,并且呈现以下内容:
href="../Views/Shared/%3C%25=%20Url.SiteStylesheet()%20%25%3E"
正如你所看到的,扩展方法没有被执行,而整个事情只是被编码了。如果我更改方法签名以接受参数:
public static string SiteStylesheet(this UrlHelper urlHelper, string dummy)
然后执行扩展方法,输出如预期:
href="/Assets/Stylesheets/FluidCMS.css"
那么我的问题是这是设计使然,还是 ASP.NET MVC Web 窗体视图引擎中的错误?