何时通过RederAction方法加载脚本时会触发document.ready?

时间:2010-08-30 21:57:37

标签: jquery asp.net-mvc

我有一个动作来总结实体的信息。该操作的视图包含一个用于处理摘要UI的脚本。我还有另一个动作多次加载此视图(以汇总多个实体实例)。似乎每次在页面上加载操作视图时都会触发jQuery document.ready函数。这是正确的行为吗?

例如:

我有一个SummaryController.Summarize(实体项)动作,其中包含执行所有奇特UI内容的脚本。 我还有一个JobController.Index()动作,它将5个实体实例传递给它的视图。视图调用RenderAction(“Summarize”,“Summary”,entity)来显示每个实体。但是,我希望document.ready函数只在所有Summarize操作加载后才会触发(链接事件),但每次都会触发,所以我的事件多次订阅。希望这是有道理的。

2 个答案:

答案 0 :(得分:1)

RenderAction方法输出动作返回的原始HTML 浏览器不知道HTML来自不同的操作。

因此,对$(document).ready的每次调用都将单独执行。

答案 1 :(得分:0)

HTML在发送给客户端之前已经汇总。因此,“最终”页面会被其中的每个控件(通过RenderAction呈现)发送。

因此,页面中呈现的每个用户控件都将拥有自己的js代码片段。

document.ready注册文档准备好时要调用的处理程序。每次调用该方法时,都会附加一个新的处理程序。这就是它不止一次被解雇的原因。

希望这有帮助