为什么我不能从内联ASPX代码块中添加控件页面的标题?

时间:2014-01-10 17:28:59

标签: asp.net vb.net .net-4.0 webforms asp.net-4.0

为什么我不能从内联 ASPX代码块添加控件页面的标题?它的工作原理来自后面的代码。

标记只是没有添加到页面中。

是页面生命周期吗?

在aspx页面中:

<%
    StyleSheet.AddToHeader(Page, New List(Of String)({
            "~/CSS/bootstrap.min.css",
            "~/CSS/skin.css"
    }))
%>

Imports Microsoft.VisualBasic
Imports System.Web.UI

Public Class StyleSheet
  Public Shared Sub AddToHeader(ByRef currentPage As Page, ByVal pathList As List(Of String))
    For Each singlePath In pathList
        Dim lineBreak As New Literal()
        Dim stylesheet As New HtmlLink()

        lineBreak.Text = Environment.NewLine
        stylesheet.Attributes.Add("rel", "stylesheet")
        stylesheet.Attributes.Add("type", "text/css")
        stylesheet.Href = currentPage.ResolveUrl(singlePath)

        currentPage.Header.Controls.Add(lineBreak)
        currentPage.Header.Controls.Add(stylesheet)
    Next
  End Sub
End Class

1 个答案:

答案 0 :(得分:1)

内联执行的代码(内部&lt;%%&gt; )在流式传输到客户端计算机时完成。

你不能这样做,并期望更新标题,因为你在对象执行它的“RenderControl”内部例程后正在改变它。

大多数代码都在渲染发生之前发生,这就是为什么你可以在没有问题的情况下在幕后进行。