asp.net - 如何在 ASP.NET MVC 项目中模拟 ScriptManager.RegisterStartupScript()

标签 asp.net javascript asp.net-mvc scriptmanager

我正在使用 ASP.NET MVC 项目和 jQuery 来处理异步请求。有时对于异步请求,我需要返回初始化 JavaScript 片段并与 HTML 片段一起执行(我希望在服务器上呈现此 JavaScript)。

现在我使用我自己的 ScriptsHelper 类和 RegisterStartupScript() 方法(将数据添加到 HttpContext.Current.Items)。然后在用于异步请求的 global.asax HttpApplication.EndRequest() 中,我将所有已注册的脚本附加到输出(包含在标签中)。当接收到的 HTML 附加到 DOM 时,jQuery.fn.load() 成功执行了它们——这正是我所需要的。您认为这是“正确”(好的)解决方案,还是您可以提出更好的建议?谢谢。

最佳答案

在我开始使用 jquery 并最终使用 eval() 之前,我在一个项目中遇到过类似的情况。我返回了一个 javascript 文本片段作为不可见 DOM 元素值的一部分以及我插入到 DOM 中的其余 HTML。

我在 IE6 中调试这种动态生成的 javascript 时遇到了很多麻烦,所以这个解决方案对我来说效果不错,因为我可以检查正在评估的 DOM 元素的值。但是,我一直对使用 eval 持谨慎态度。

听起来你的解决方案有一个合理的服务器端渲染架构,而不是我的意大利面条代码,而且这种技术看起来很符合 jQuery.fn.load 的精神,所以我也不会担心很多。

关于asp.net - 如何在 ASP.NET MVC 项目中模拟 ScriptManager.RegisterStartupScript(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/828802/

相关文章:

c# - 从后面的代码中设置的 cssClass

asp.net - 在.NET中访问Web服务中的查询字符串(GET请求数组)

javascript - 使用 firebase 云功能时是否应该通过快照获取引用?

javascript - 计算容器元素需要多少滚动才能使其子元素之一可见?

javascript - 所有的javascript都应该放到一个单独的js文件中吗

asp.net-mvc - 何时将 MVC View 拆分为两个?

javascript - 引用母版页中的特定页面

javascript - 函数中的 boolean 运算符混淆

asp.net-mvc - 有没有一种方法可以在运行时动态更新asp.net mvc bundle 内容?

c# - 在C#Web表单上的每个请求上运行的事件