Asp.net 无法从母版页解析样式';s页面加载

Asp.net 无法从母版页解析样式';s页面加载,asp.net,master-pages,Asp.net,Master Pages,我在链接到母版页的文件夹中有一个页面login.aspx。在母版页的页面加载事件中,我添加了一些样式。当我重定向到login.aspx时,它无法从母版页的pageload事件中获取样式。我分析了这个问题,发现是因为我的login.aspx不在根文件夹中,而是在根文件夹中的一个文件夹中 如何在login.aspx中运行masterpage的pageload事件?如果将代码移动到模板化页面(不是使用它的页面,而是使用它的页面)时代码有效,则表明您正在使用样式表的相对链接 我建议在根目录下使用相对UR

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


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

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


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

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

App_Themes/Style/mystylesheet.css  

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

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

在这种情况下,您可以从母版页使用如下标记:

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


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

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

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

嗨,瑞克,刚买了你的新ASP.NET书,它真是棒极了!:-)谢谢很高兴听到你喜欢它。