0

我有一个需要 12 个 jQuery Mobile 页面的 MVC4 Web 应用程序。

  1. 欢迎
  2. 登录

然后还有很多其他人。

如果用户要求,我想一次添加一页,

  1. 将页面动态添加到我的项目的最佳方法是什么?

  2. 包含页面脚本(动态添加的页面)的适当站点在哪里?

  3. 如果 data-ajax="false" 包含在 a 中,究竟是什么意思Html.ActionLink()

目前,我几乎有 90% 的应用程序,但我在引用某些页面时遇到严重问题,有时视图中包含的所有页面都不会呈现或不运行脚本。

4

2 回答 2

2

我认为您在组织 JQuery Mobile 页面时有以下选择:

(a) 一个包含所有页面的 HTML 文件(带有 class="page" 的 div)

这是最简单的方法,并且可以保证工作,但是对于大型项目,文件可能会变得太大

(b) 一个链接到子 HTML 文件的主 HTML 文件

从 UI 的角度来看,JQM 在加载子页面时默认使用“AJAX 模式”,这使得转换与选项 (a) 一样流畅。这样做的缺点是子页面没有完全加载,即没有执行任何包含或脚本。在加载时,JQM 解析第一个具有 class="page" 的 div 的子页面,提取 div 并将其添加到当前 DOM。请注意,子页面不能有多个“页面”,因为只会加载第一个页面。

要正确执行选项 (b),您可以:

  1. 包括所有 CSS、JS 并在主页中运行所有初始化脚本或

  2. 在链接上指定“data-ajax=false”或“rel=external”。这迫使 JQM 完全重新加载链接/子页面,但是使用这种方法,您将失去流畅的过渡。

于 2012-12-01T06:05:57.037 回答
0

我过去使用的一种方法是拥有一个主页,该主页是加载到浏览器中的所有内容。

其余的“页面”只是加载到主页中的“内容”div 中的 HTML 块。显然会有一个初始“页面”,它是初始加载时主页默认加载的第一个 HTML 块,但剩余的“页面”会根据需要加载(例如,当用户登录时。单击链接, ETC。)。

我在主页中使用 JQuery .Load() 来降低每个“页面”的 HTML 块,并根据需要将它们加载到“内容”div 中。

我发现这非常方便,因为所有脚本和样式都可以驻留在每个 HTML 块中(就像对于完整的独立页面一样),而 JQuery .Load() 将负责脚本的所有运行和样式的应用。

在 MVC 方面,只有主页的视图包含完整的 HTML 页面元素,并且被构造为用作“页面”内容的“容器”。其余的视图将仅包含每个“页面”的相关内容,并被结构化以适当地适合“容器”。

于 2012-12-01T03:31:08.330 回答