C# 在ASPX页面中动态构建JavaScript的方法?

C# 在ASPX页面中动态构建JavaScript的方法?,c#,asp.net,javascript,scripting,scriptmanager,C#,Asp.net,Javascript,Scripting,Scriptmanager,我有一个页面,它是通过另一个站点页面上的标记引用的。在脚本src中,我传入希望脚本生成的表单(从db表中),以及动态生成的表单应该放在的div。调用页面如下所示: <div id="FormContainer"></div> <script type="text/JavaScript" src="http://www.example.com/GenerateForm.aspx?FormId=1&div=FormContainer"></scrip

我有一个页面,它是通过另一个站点页面上的
标记引用的。在脚本src中,我传入希望脚本生成的表单(从db表中),以及动态生成的表单应该放在的div。调用页面如下所示:

<div id="FormContainer"></div>
<script type="text/JavaScript" src="http://www.example.com/GenerateForm.aspx?FormId=1&div=FormContainer"></script>

GenerateForm.aspx包含读取FormId和Div Id的QueryString参数的代码,并输出将构建表单的JavaScript

我的问题是。“输出”JavaScript的不同方法有哪些?一些JavaScript是静态的,可以打包到外部的.js文件中,我也有jQuery。但是我应该在GenerateForm.aspx标记页面上添加它吗?还是应该使用脚本管理器

那么动态构建的JavaScript呢?目前,我只是使用
Response.Write()
作为概念证明,但我应该做些其他事情吗?在页面上使用
Literal
控件并设置其值?使用脚本管理器?还有别的吗


我知道这是一个冗长的问题,所以提前谢谢

如果您想使用一个单独的、被引用的Javascript文件,您可能需要使用一个ashx文件。基本上,这只是一个通用处理程序,您可以使用它直接写入输出流,而无需处理ASP.NET页面生命周期。如果您从“添加新项目”对话框向站点添加基本的通用处理程序(.ashx),则模板应具有足够的方向性,使用
context.Response.Write()
动态输出Javascript

如果您希望在特定时间(如在触发事件后)输出要运行的单独Javascript行,则ScriptManager更有用。然后您可以执行
ScriptManager.RegisterClientBlock(this,this.GetType(),“CodeBlock”,“警报('Button clicked');”,true)


静态文件的处理方式应该是静态的。服务器可以处理缓存,如果直接从脚本标记引用静态脚本文件,则不会导致不必要的处理。但是,如果需要动态加载静态脚本,可以创建一个包含标记的文本。通过这种方式,它使用浏览器的静态文件的缓存版本。

如果要使用单独的引用Javascript文件,可能需要使用ashx文件。基本上,这只是一个通用处理程序,您可以使用它直接写入输出流,而无需处理ASP.NET页面生命周期。如果您从“添加新项目”对话框向站点添加基本的通用处理程序(.ashx),则模板应具有足够的方向性,使用
context.Response.Write()
动态输出Javascript

如果您希望在特定时间(如在触发事件后)输出要运行的单独Javascript行,则ScriptManager更有用。然后您可以执行
ScriptManager.RegisterClientBlock(this,this.GetType(),“CodeBlock”,“警报('Button clicked');”,true)

静态文件的处理方式应该是静态的。服务器可以处理缓存,如果直接从脚本标记引用静态脚本文件,则不会导致不必要的处理。但是,如果需要动态加载静态脚本,可以创建一个包含标记的文本。这样,它使用浏览器的静态文件的缓存版本