加载ASP.net页面时以编程方式运行javascript的最佳方式是什么?

加载ASP.net页面时以编程方式运行javascript的最佳方式是什么?,asp.net,javascript,Asp.net,Javascript,在ASP.net项目的global.asax文件中,我正在检查某些条件。当满足这些条件时,我希望在页面运行时自动执行javascript代码 这是我的代码: 如果是条件,则 响应。写入(“”) Response.Write(“//Javascript代码完成任务”) 响应。写入(“”) 如果结束 虽然这似乎可以执行Javascript代码,但我认为这不是一个最佳实践,因为该代码将处理加载页面的所有HTML 当我的页面加载时,以编程方式附加一些要运行的额外Javascript代码的最佳方式是什么

在ASP.net项目的
global.asax
文件中,我正在检查某些条件。当满足这些条件时,我希望在页面运行时自动执行javascript代码

这是我的代码:

如果是条件,则
响应。写入(“”)
如果结束

虽然这似乎可以执行Javascript代码,但我认为这不是一个最佳实践,因为该代码将处理加载页面的所有HTML

当我的页面加载时,以编程方式附加一些要运行的额外Javascript代码的最佳方式是什么


更新谢谢你的回答。太糟糕了,这个解决方案不能在
global.asax中运行。是否没有办法在整个站点实现这一点?似乎
global.asax
将是放置在每个页面上运行的代码的合理位置
Response.Write
global.asax

中工作正常要正确管理服务器控件或页面中脚本的位置,应使用

如果在站点中使用ajax控件,也可以在ScriptManager中使用等效方法:

这些方法负责在文档加载完成时将脚本输出到要运行的适当位置。发布的链接有一些很好的例子


请注意,您将无法直接从global.asax使用这些方法,因为它没有对当前页面的引用。Global.asax用于将事件挂接到HttpApplication管道,并与实际的HttpHandler(如页面对象)解耦。为了保持UI的分离,最好在母版页或某个基本页类中进行检查,并从中输出脚本。

早在asp.net ajax 1.0时代,ajax客户端库中就有一个名为Sys.WebForms.PageRequestManager的东西。我还没有使用过asp.NET3.5和asp.NETAjax,但我相信将asp.NETAjax javascript文件添加到您的页面中就足够了,您将能够使用它。签出一个名为event的事件


ps:每次有同步或异步回发时都会触发此事件

如果您想在每页上都执行此操作,请将其放在您的母版页上(如果有)

如果没有,您可以创建一个基页类,该类继承自System.Web.UI.Page并扩展它以检查您的条件&呈现javascript

然后在每个页面的代码隐藏中,继承您的基本页面类,而不是System.Web.UI.page

public partial class Orders : MyCode.BasePage

@Justin-相当不公平-1因为这个问题没有提到在项目中使用jQuery,甚至没有提到jQuery是允许的。我的0.02美元,这实际上是一个很好的观点。如果您可以在客户端运行“条件”逻辑,那么jQuery可以在DOM加载完成后轻松运行脚本。我的回答遵循OP示例,并假设必须在服务器上检查该条件,如果不满足该条件,则不会输出任何内容。@hunter-他实际上没有否决投票;“只需使用jQuery”是一个流行的笑话,所以:)@hunter-对不起。这是一个由来已久的笑话。事实上,我对答案投了更高的票。我发现我的代码也有一些奇怪的地方。我添加了一些空格以使其正确显示。