Хорошо, я, вероятно, сделал это ужасным, ужасным способом, но я хотел добавить скрипт в элемент head в недавнем проекте из пользовательского элемента управления. Этот скрипт не требовал никаких данных с моего сервера, но я хотел, чтобы они были только на определенных страницах, поэтому я поместил скрипт в .js-файл и добавил его в заголовок так:
HtmlGenericControl script = new HtmlGenericControl("script"); // Creates a new script-element
script.Attributes.Add("type","text/javascript");
script.Attributes.Add("src","src/to/js-file.js");
Page.Master.FindControl("head").Controls.Add(script); // Finds the element with ID "head" on the pages master page.
Не совсем уверен, работает ли код так, как я думаю, и работает, как код, который я написал для проекта, на другом компьютере, но вы поняли идею, верно?
Edit:
После небольшого поиска в сообщении об ошибке, я думаю, что это может быть решением вашей проблемы:
using System.IO;
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
yourDivID.RenderControl(h);
String str = sw.GetStringBuilder().ToString();
Если вы объедините два примера, вы сможете получить желаемый результат. Я не проверял это, но это работает в моей голове.