控制器操作仅在第一个 getJSON 或 AJAX get 请求时执行
当用户单击链接时,我使用 JQuery 和 MVC2 发出 AJAX 请求。这些链接在 jQuery 中使用 .live,如下所示:
$('.listdelete').live('click', function (event) {
event.preventDefault();
url = '/Controller/Action';
data = getArguments();
$.getJSON(url, data, function (data) {
alert('success!');
});
当我在控制器中放置断点时,我可以看到在第一个用户单击时,找到并执行了控制器操作。在随后的单击中,getJSON 调用将执行成功警报,但不会执行控制器代码。将 .live 与 getJSON 一起使用是否有问题?
I'm using JQuery and MVC2 to make an AJAX request when the user clicks on a link. The links are using .live in jQuery like so:
$('.listdelete').live('click', function (event) {
event.preventDefault();
url = '/Controller/Action';
data = getArguments();
$.getJSON(url, data, function (data) {
alert('success!');
});
When I drop a break point in my controller I can see that on the first user click the controller action is found and executed. On subsequent clicks the getJSON call executes the success alert, but the controller code is not executed. Is there a problem using .live with getJSON?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题可能在于(如果您使用的是 IE)浏览器缓存了您的请求。所以你已经成功了,但没有做出真正的决定。为了避免这种情况,你应该这样做:
The problem probably lies (if you are using IE) in the fact that the browser caches your request. So you have a success but no real call is made. To avoid this you should do something like this: