回答
在此发布此内容为 8 小时还没有过去让我回答我自己的问题:
我想通了。我从 PreRender 中删除了 Server.MapPath 并且它呈现正确。我的脑袋放屁。多谢你们
在我的代码中,我有:
CssIncludes.Add("~/Sites/0/PageLayouts/Predefined/News/CSS/HeaderMenu.css");
一旦在页面上呈现,它就会在页面源中显示为:
<link href='C:\inetpub\wwwroot\mysite\Sites\0\PageLayouts\Predefined\News\CSS\HeaderMenu.css' type='text/css' rel='stylesheet' />
现在,如果我手动复制该 css url 并将其粘贴到我的浏览器中,它会很好地加载 css,但它根本不会显示在我的 c:\localhost\mysite\ 上!
有什么解决办法吗?
CSS 包括列表:
public List<string> CssIncludes
{
get
{
if (_cssincluded == null)
_cssincluded = new List<string>();
return _cssincluded;
}
}
void Page_PreRender(object sender, EventArgs e)
{
foreach (string css in CssIncludes)
{
Page.Header.Controls.Add(new LiteralControl(string.Format("<link href='{0}' type='text/css' rel='stylesheet' />", Server.MapPath(css))));
}
}