Je pense que NullReference vous a donné une solution MVC parce que vous avez marqué votre message "mvc". Si vous utilisez des formulaires Web ASP.NET, vous pouvez utiliser la même technique que celle utilisée lors de la génération de liens CSS à la volée sur les contrôles utilisateur. Sur l'événement Page_Init de la page, faire quelque chose comme ce qui suit (dans l'exemple ci-dessous, je suis un lien vers jquery-ui-CSS):
protected void Page_Init(object sender, EventArgs e)
{
System.Web.UI.HtmlControls.HtmlLink jqueryUICSS;
jqueryUICSS = new System.Web.UI.HtmlControls.HtmlLink();
jqueryUICSS.Href = "styles/jquery-ui-1.8.13.custom.css");
jqueryUICSS.Attributes.Add("rel", "stylesheet");
jqueryUICSS.Attributes.Add("type", "text/css");
Page.Header.Controls.Add(jqueryUICSS);
}
Si vous voulez des éléments réels à rendre sur l'en-tête, puis utilisez HtmlGeneric contrôle au lieu de HtmlLink dans mon exemple ci-dessus. Il est toujours la même technique - sur Page_Init, ajouter à la collection Page.Header.Controls:
protected void Page_Init(object sender, EventArgs e)
{
System.Web.UI.HtmlControls.HtmlGenericControl mystyles;
mystyles = new System.Web.UI.HtmlControls.HtmlGenericControl();
mystyles.TagName = "style";
string sampleCSS = "body { color: Black; } h1 {font-weight: bold;}";
mystyles.InnerText = sampleCSS;
Page.Header.Controls.Add(mystyles);
}
Je posté à l'origine ceci sur la réponse de Zruty, mais il applique à cette question en général - Vous aurez voulez faire attention à la façon dont vous coupez votre CSS. Vous ne voulez probablement pas créer un fichier CSS pour chaque page de votre site. Vous devriez faire usage de la mise en cache côté client, de sorte que l'utilisateur n'a pas à faire une demande supplémentaire à chaque fois qu'il frappe une page pour la première fois – Dlongnecker