我正在使用 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/