【问题标题】:Should MVC4 PartialView ajax loading fire a "pageinit" event?MVC4 PartialView ajax 加载是否应该触发“pageinit”事件?
【发布时间】:2013-02-28 13:39:08
【问题描述】:

在我的 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 加载时触发吗?还是我需要以不同于处理完整页面的方式处理部分视图?

【问题讨论】:

    标签: asp.net-mvc jquery-mobile


    【解决方案1】:

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

    【讨论】:

    • 我同意。但问题更多的是在这种情况下的预期行为是什么,以及我是否正在做一些导致我看到不正确行为的事情。此外,如上所述...面板 A 通常也通过 ajax 加载,但通过正常的 jquery 页面加载顺序,这与面板“C”和“D”的 PartialView 模式不同......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多