Ну, вот что я сделал.Я решил создать методы расширения, которые будут включать ссылку.
Обновление: Мне пришлось изменить расширение ScriptManager, так как оно все еще не очень хорошо работало с UpdatePanels.Обновленный код ниже.
<System.Runtime.CompilerServices.Extension()> _
Public Sub RegisterStylesheetInclude(ByVal scriptManager As ScriptManager, ByVal page As Page, ByVal url As String)
Dim css = "var cssNode = document.createElement('link');" & _
"cssNode.type = 'text/css';" & _
"cssNode.rel = 'stylesheet';" & _
"cssNode.href = '" & url & "';" & _
"document.getElementsByTagName('head')[0].appendChild(cssNode);"
scriptManager.RegisterClientScriptBlock(page, page.GetType(), url, css, True)
End Sub
<System.Runtime.CompilerServices.Extension()> _
Public Sub RegisterStylesheetInclude(ByVal clientScriptManager As ClientScriptManager, ByVal page As Page, ByVal url As String)
Dim found = page.Header.Controls.OfType(Of HtmlLink).Any(Function(m) m.Href = url)
If Not found Then
Dim link As New HtmlLink()
link.Href = url
link.Attributes("type") = "text/css"
link.Attributes("rel") = "stylesheet"
page.Header.Controls.Add(link)
End If
End Sub