我是半新手,所以请耐心等待...... 注意,此时我不知道jQuery或Json
在我的MVC项目中(我没有使用框架,但项目结合了前端控制器和MVC),我有:
1)一个Controller,它向DAO发送一些参数。 DAO运行MySQL查询并将一系列文章发送回Controller
2)一个视图层,我希望用户能够单击按钮从文章移动到文章。我建议这样做的方法是通过javascript Ajax调用来获取Controller中生成的数组中的下一篇文章。
我的问题是:Ajax函数调用的URL应该是什么?显然它无法调用Controller(或者可以吗?)。我应该添加一类Controller会用数组实例化的专用Ajax内容容器吗?我很难看到View如何找到正确的URL ... Controller应该将参数传递给View并让它请求查询吗?
答案 0 :(得分:2)
XHR(也称为AJAX)调用在控制器级别上与传统浏览器请求没有区别。差异仅在于您希望收到的回应。
这意味着,如果您已完全实现了视图(不仅仅是哑模板),请求的类型应该仅对视图很重要。您可以通过添加扩展程序轻松区分它们:
http://foo.in/user/list
- 简单请求http://foo.in/user/list.json
- XHR请求差异主要在路由机制中得到认可,它们在Request
实例上设置了特定的细节。当控制器看到Request
实例有isXHR
标志时,它会告诉视图:“用某些内容回复此内容,这不是完整的HTML页面”。
基本上,相同的控制器应该处理普通和XHR调用。事实上,你不关心,它是什么类型的请求。只需在响应中生成html
,xml
或json
。
P.S。:模型图层应完全不受请求类型的影响。
答案 1 :(得分:0)
从上面的帖子列表中我假设您必须知道在编辑文章时调用方法的Ajax语法。
如何操作如下: 1.最初在控制器内定义一个操作服务器的操作(可能在此上下文中编辑您的文章。) 2.通过ajax方法指定Controller和您要调用的操作。 ( 在这个时刻它应该是文章 - 控制器,编辑文章 - 行动)。
控件会自动导航到特定的操作方法。
此致 Pavan.G
答案 2 :(得分:-3)
取决于您使用的框架。但一般来说:
您可以使用Controller发送“标志”(例如在GET变量中),它是一个AJAX查询,然后退出该函数,但具有不同的AJAX查询控制器被认为是更好的路径:)无论如何,类似的东西:
function page() {
if($_GET["is_ajax"] == "1") {
// return the AJAX query
return;
}
// go on with showing the page
}
希望这有帮助!