Desidero aggiungere programmaticamente gli StyleSheets nella sezione head, ma uno degli esempi che ho visto sembrava necessitare di molte righe di codice per aggiungere un solo foglio di stile anche se potrei aver bisogno di molto:Aggiunta di fogli di stile a livello di codice in Asp.Net
Esempio di codice:
HtmlLink css = new HtmlLink();
css.Href = "css/fancyforms.css";
css.Attributes["rel"] = "stylesheet";
css.Attributes["type"] = "text/css";
css.Attributes["media"] = "all";
Page.Header.Controls.Add(css);
ho anche utilizzare Page.Header.RenderControl()
metodo, ma non ha funzionato neanche. Oggetto null è stato generato un errore.
Ho utilizzato anche Page.Header.InnerHtml
e InnerText += "<link .... "/>
ma hanno gettato l'errore letterale che credo sia un errore comune.
Ho usato questo codice:
List<Literal> cssFiles = new List<Literal>();
cssFiles.Add(new Literal() { Text = @"<link href=""" + ResolveUrl("~/Resources/Styles/MainMaster/MainDesign.css") + @""" type=""text/css"" rel=""stylesheet"" />" });
cssFiles.Add(new Literal() { Text = @"<link href=""" + ResolveUrl("~/Resources/Styles/MainMaster/MainLayout.css") + @""" type=""text/css"" rel=""stylesheet"" />" });
AddStyleRange(cssFiles);
private void AddStyleRange(List<Literal> cssFiles)
{
foreach (Literal item in cssFiles)
{
this.Header.Controls.Add(item);
}
}
ha funzionato in un primo momento, ma quando cambio le pagine che ha smesso di funzionare.
Sto usando pagina master e sto scrivendo questi codici su Master.cs
di file e anche alcune persone consiglia di utilizzare this.Header
invece di Page.Header
ma quando ho costruito getta un errore che dice che non posso dichiarare che in questo modo.
Non dovrebbe essere così difficile aggiungere molti stili.
È complicato.
Ho trovato un trucco: assicurati che il tuo tag
abbia runat = "server" o che il codice non lo trovi. – SteveCav