我正在创建一种mvc(或某些人说受启发的mvc)“框架”,主要用于学习目的。
我遇到的问题是,在使用ajax而不是整个页面加载页面的一部分时,事物应该如何工作的逻辑。
具体来说,我有一个帖子表单页面,其URL为/ posts / new。 这将加载PostController和“ new”方法。 该方法将2个数组传递给实际渲染视图的渲染视图方法。
第一个数组是视图设置,它仅包含有关视图应包括的内容的一些信息,例如“布局”。如果页面上应该有一个侧边栏,应该使用哪个导航菜单。
第二个数组是视图数据数组。它保存了视图使用的所有数据,其中包括侧边栏的数据,因此此PostController获取该视图所需的所有数据。
在这种情况下,/ posts / new会加载一个发布表单和一个侧边栏。侧边栏中有一个帖子列表,如上所述,这些帖子从PostContoller传递到视图数据数组中
现在,当我单击放置在帖子列表上方的“添加帖子”按钮时,我想通过ajax包含该帖子表单。单击该元素后,该元素将被该帖子表单替换。 但是,为此,我只需要加载发布表单,而不是其余模板或查看数据,但请记住,此按钮也是指向实际发布表单url的链接,因此基本上/ post / new url应该同时适用于Ajax和常规页面加载。
所以我的问题是这怎么办?
似乎我要么必须要有if语句来检查控制器是否通过ajax加载,如果是,则执行此操作或该操作,或者,如果ajax请求,则不包括边栏和模板,但是这些两种似乎不是使用Ajax的有效方法。
或者也许我加载视图的方式通常不是很理想?
我四处张望,无法真正找到答案,因此,我们将不胜感激!
编辑: 为简化这个问题,我想知道在mvc类型的框架中将整个页面的一部分与ajax结合在一起的架构逻辑。