2

为了实现 AJAX 登录,我在我的页面上有此链接:

<%= Ajax.ActionLink("Log On", "LogOn", "Account", new AjaxOptions {
    UpdateTargetId = "lll",
    Confirm = "blah"}) %>

附近有一个 id 为 lll 的 div。当我单击链接时,我得到了 blah 确认(只是为了调试目的而添加的,没有它的行为是相同的),但随后什么也没有发生。没有请求到达服务器(因为我在 LogOn 操作方法上有一个断点)。那是在 Chrome 和 IE8 中。在 FF3 中,它会打开登录视图,但作为一个页面,它不会通过 AJAX 下载它。

有什么想法可能是错的吗?

4

3 回答 3

5

问题是 ajax 操作链接默认发出 POST 请求,它被定向到另一个 LogOn 方法(接受 POST 的方法),这就是我没有击中断点的原因另外,它失败了,因为必要的 POST 数据没有被发送。将 HttpMethod 添加到操作链接修复它:

<%= Ajax.ActionLink("Log On", "LogOn", "Account", new AjaxOptions {
    UpdateTargetId = "lll",
    Confirm = "blah",
    HttpMethod = "Get"}) %>
于 2009-06-01T13:37:07.160 回答
1

听起来页面上有一些 javascript 错误导致插入的 javascript 处理 AJAX 请求不触发。您是否在页面加载时在 FireBug 中查看过它,以查看您的所有 Javascript 是否正确加载?此外,您的 Microsoft javascript 库版本是否与您使用的 MVC 版本相匹配?我记得至少有一次在我必须在我的项目中手动更新我的 Microsoft javascript 库版本的版本进展中。如果您的项目通过多个版本的 MVC 存在,我建议跟踪新库(创建一个新项目并将它们复制到旧项目或打开安装目录中的项目存档并手动提取它们)并安装它们.

于 2009-06-01T13:27:21.623 回答
0

您是否在 head 部分中包含 ajax 客户端脚本:

  • 微软MvcAjax.js
  • 微软Ajax.js
于 2009-06-01T13:12:16.803 回答