1

在我的 asp.net mvc4 + jquerymobile 应用程序中,我有一个看起来像这样的“页面”:

+---------------------------------------+
|A                                      |
|   +----------------+----------------+ |
|   |B               |C               | |
|   |                | +------------+ | |
|   |                | |D           | | |
|   |                | +------------+ | |
|   +----------------+----------------+ |
+---------------------------------------+
  • A 几乎只是一个容器页面,除了设置 B 和 C 的“子页面”(部分视图)之外,它什么也不做
  • B 是一个 UserList 面板(div),它具有绑定的事件,这将导致面板 C 的 ajax 重新加载(部分视图)
  • C 是一个 UserEdit 面板(div),包含一个带有其他信息的辅助面板。
  • D 是一个 UserPermissions 面板(div),包含通过 ajax 调用与 simplemembership 角色系统交互的复选框。

所有四个视图我都有这个脚本的某个版本,告诉我哪些事件正在触发,什么时候:

$(document).ready(function () {
    console && console.log("portalUser (pvUserEdit) document ready!!");
});
$(document).on('pageinit', function () {
    console && console.log("portalUser (pvUserEdit) pageInit!!");
});

当页面 A 首次加载时,页面 B 会同时加载,并且 pageinit 事件和 DOM 就绪事件都会为它们触发。当从 B 中的列表中选择一个项目时,它会生成一个 ajax 加载来填充面板 C(这会导致面板 D 也加载)。这一次,只有 C&D 面板的 DOM 就绪事件触发,从不触发 pageinit 事件。

所以,这就是所有的背景信息。问题是:考虑到项目的 MVC4+JQM 方面,这是预期的行为吗?我应该期望 pageinit 在 partialView 加载时触发吗?还是我需要以不同于处理完整页面的方式处理部分视图?

4

1 回答 1

0

Javascript 不知道正在运行什么样的后端,所以绝对不是 mvc 问题。它在不同的浏览器中可能会有所不同,但肯定会因为 ajax 页面加载而有所不同

于 2013-02-28T13:45:01.093 回答