【问题标题】:Methods for dynamically building JavaScript within an ASPX page?在 ASPX 页面中动态构建 JavaScript 的方法?
【发布时间】:2010-11-27 13:17:18
【问题描述】:

我有一个页面通过 <script> 标记从另一个站点上的页面引用。在脚本 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 标记页面上添加它吗?还是应该使用 ScriptManager?

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

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

【问题讨论】:

    标签: c# asp.net javascript scripting scriptmanager


    【解决方案1】:

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

    如果您想在特定时间(例如在事件触发后)输出要运行的单行 Javascript,则 ScriptManager 会更有用。然后,您可以使用ScriptManager.RegisterClientBlock(this, this.GetType(), "CodeBlock", "alert('Button clicked');", true); 来在单击按钮后显示客户端警告框。

    静态文件应该以这种方式处理 - 静态。服务器可以处理缓存,如果直接从脚本标签引用静态脚本文件,不会造成不必要的处理。但是,如果您需要动态加载 静态脚本,例如,您可以创建一个包含

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多