Это можно сделать, включив имя файла Javascript в комментарий HTML, а затем перегрузив метод Render объекта System.Web.UI.Page, чтобы найти эти комментарии и заменить их текстом из файлов JavaScript. .
В вашей разметке:
<!-- Include Src="MyJavascriptFileLocation.JS" -->
В вашем коде C #:
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
// First, grab the HTML that would have been sent
System.IO.StringWriter stringWriter = new System.IO.StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
base.Render(htmlWriter);
string html = stringWriter.ToString();
// Look for comment
int start = html.IndexOf("<!-- Include");
// If found...
if (start >= 0)
{
// Code here to replace comment with JavaScript file
}
// Output our refactored HTML
writer.Write(html);
}
Если вам нужно более одного файла JavaScript на страницу, вы можете использовать цикл while и повторять поиск и замену, пока не найдете их все.
Я не уверен, что это лучшее, что можно сделать. Динамическое добавление в JavaScript действительно мешало бы кешированию и тому подобному. Вы минимизируете количество запросов, которые клиент должен сделать, хотя.
Я оставлю это вам, если то, о чем вы просите, имеет смысл и просто ответит на вопрос. Вы знаете гораздо больше о том, чего пытаетесь достичь, чем я.