0

我是一个半新手,所以请多多包涵…… 注意,此时我不知道 jQuery 或 Json

在我的 MVC 项目中(我没有使用框架,但该项目将前端控制器与 MVC 结合在一起),我有:
1)一个控制器,它将一些参数发送到 DAO。DAO 运行 MySQL 查询并将一系列文章发送回控制器。
2)一个视图层,我希望用户能够单击一个按钮从一个文章移动到另一个文章。我建议这样做的方法是通过 javascript Ajax 调用来获取控制器中生成的数组中的下一篇文章。

我的问题是:Ajax 函数调用的 URL 应该是什么?显然它不能调用控制器(或者可以吗?)。我应该添加一类专用的 Ajax 内容容器,控制器将使用数组实例化吗?我很难看到视图如何找到正确的 URL……控制器是否应该将参数传递给视图并让它请求查询?

4

3 回答 3

2

XHR(也称为 AJAX)调用在控制器级别没有什么不同,然后是经典的浏览器请求。不同之处仅在于您期望收到的响应。

这意味着,如果您已经完全实现了视图(不仅仅是愚蠢的模板),那么请求的类型应该只对视图很重要。您可以通过添加扩展轻松区分它们:

  • http://foo.in/user/list- 简单的请求
  • http://foo.in/user/list.json- XHR 请求

差异主要在路由机制上得到认可,它们在Request实例上设置了特定的细节。当控制器看到该Request实例有一个isXHR标志时,它会告诉视图:“用一些东西来响应这个,那不是完整的 HTML 页面”

基本上,相同的控制器应该同时处理普通调用和 XHR 调用。其实你并不关心,它是什么类型的请求。仅您是否需要生成htmlxmljson在响应中。

PS:模型层应该完全不受请求类型的影响。

于 2012-12-01T20:06:13.247 回答
0

从上面的帖子列表中,我假设您必须知道 Ajax 语法才能在编辑文章时调用方法。

如何做到这一点如下: 1. 最初在控制器中定义一个动作,它服务于您的目的(可能是在这种情况下编辑您的文章。) 2. 通过 ajax 方法指定控制器和您要调用的动作。(此时应该是Articles--Controller,EditArticle--Action)。

控件会自动导航到特定的操作方法。

问候 Pavan.G

于 2012-12-03T10:09:08.483 回答
-3

取决于您使用的框架。但一般来说:

您可以使用控制器发送一个“标志”(例如在一个 GET 变量中),它是一个 AJAX 查询,然后退出该函数,但是对于 AJAX 查询有不同的控制器被认为是一个更好的路线:) 无论如何,有些东西与此类似:

function page() {
   if($_GET["is_ajax"] == "1") {
      // return the AJAX query
      return;
   }
// go on with showing the page
}

希望这可以帮助!

于 2012-12-01T19:51:49.683 回答