无法从母版页面加载解析样式

时间:2009-12-24 23:35:04

标签: asp.net master-pages

我在一个链接到母版页的文件夹中有一个页面login.aspx。在masterpage的页面加载事件中,我添加了一些样式。当我重定向到login.aspx时,它无法从母版页的pageload事件中获取样式。我分析了发现的问题,因为我的login.aspx不在根文件夹中,而是在根文件夹里面的文件夹中。

如何在login.aspx中运行masterpage的pageload事件?

4 个答案:

答案 0 :(得分:0)

如果代码在您将代码移动到模板化页面时有效(不是,而是使用它的那个),那么它表明您正在使用样式表的相对链接。

我建议在根目录下使用相对URL(某种形式为“/stylesheet.css”),以便当您拥有使用该模板但在子目录中的页面时,它可以正确解析样式表。

答案 1 :(得分:0)

您可以将所有样式表放在文件夹结构中,如下所示:

App_Themes/Style/mystylesheet.css  

然后在您的内容ASPX页面中,只需将Theme="Style"添加到页面指令中,ASP.NET将自动为您拥有的每个页面解析它: - )

答案 2 :(得分:0)

我假设你在谈论CSS样式表,而不是ASP.NET样式(主题)。

在这种情况下,您可以在主页面中使用以下标记:

<link runat="server" rel="Stylesheet" href="~/scripts/common.css"
    type="text/css" />

或者您可以从Page_Load()处理程序以编程方式插入相同的标记。但是,在这种情况下,最好将HtmlLink控件添加到Head控件。或者,您可以向控件添加ID,并使用Visible="True"来控制它是否出现在生成的标记中。

答案 3 :(得分:0)

问题是标记的部分位于母版页中,因此无法对样式表进行引用

Dim link As New HtmlLink
link.Href = "LocationOfStyleSheet.css"
link.Attributes.Add(HtmlTextWriterAttribute.Rel.ToString(), "stylesheet")
Page.Header.Controls.Add(link)