该ClientScriptManager.RegisterClientScriptInclude方法允许用户注册与页面对象(检查重复)一个JavaScript参考.
是否有相当于CSS引用的此方法?
类似的问题适用于ClientScriptManager.RegisterClientScriptBlock和ClientScriptManager.RegisterClientScriptResource
您可以在ASP.Net代码隐藏类中添加CSS文件的标题链接,如下所示:
HtmlLink link = new HtmlLink(); link.Href = "Cases/EditStyles.css"; link.Attributes.Add("type", "text/css"); link.Attributes.Add("rel", "stylesheet"); this.Header.Controls.Add(link);
您可以预先迭代标题控件以查看它是否已存在.显示的示例来自我的一个项目中的Page_Load,并且位于条件表达式中,如果页面应该处于"编辑"模式,则只添加EditStyles.css.
对于ClientScriptManager.RegisterClientScriptBlock和ClientScriptManager.RegisterClientScriptResource,它们具有用于检查它们是否已经注册的等效函数(例如,IsClientScriptrResourceRegistered).
简答:不.您当然可以使用自己的功能(如CMPalmer建议的那样)来获取CSS嵌入式资源(如Gulzar建议的那样)并将它们嵌入到页面中.
但是,作为一个最佳实践问题,我不确定你为什么要这样做.如果你正在制作一个具有大量CSS样式的可重用控件,我的建议是将类名硬编码到控件的符合标准的输出中,并附带一个建议的样式表.这使您的用户/客户可以选择覆盖您建议的样式以满足他们的需求,并且通常允许他们在他们认为合适的情况下管理他们的CSS设置.
将样式与标记分离是一件好事 - 你已经走在正确的道路上避免各种内置的ASP.NET样式属性,但是你应该把它全部拿走并保持CSS不在你的.dll中.