【发布时间】:2010-10-04 17:46:33
【问题描述】:
这个 MVC 的东西很有趣,但每一步都有另一个小障碍。
我今天第一次将Request.IsAjaxRequest 与Microsoft 的AJAX 库结合使用。我还没有使用 jQuery(我不得不提一下,因为我刚刚超链接到一个关于 jQuery 的问题!)。
不幸的是,我在测试此代码之前安装了RC1 refresh。
我正在使用Ajax.BeginForm。
<% using (Ajax.BeginForm("Contact", "AboutUs", new AjaxOptions()
{
OnBegin = "submitComments_begin",
OnSuccess = "submitComments_success",
OnFailure = "submitComments_failure",
OnComplete = "submitComments_complete",
LoadingElementId = "submitting"
}, new { id="fooForm" }))
当我的控制器动作执行时,这些是我的标题:
连接编译指示,内容长度, 内容类型,接受,接受编码, Accept-Language、Host、Referer、 用户代理,UA-CPU
另外 FORM 包含这个参数
Request["__MVCASYNCPOST"] = "true"
最终效果是返回 false!
Request.IsAjaxRequest()
我遇到了 Chrome 和 Internet Explorer 的问题。
请告诉我我是否在做一些愚蠢的事情 - 或者是否有什么东西坏了。
最后的想法: 嗯 - 也许我需要一个新的期货 DLL。如果有问题我会更新的
【问题讨论】:
-
顺便说一句,它肯定是通过 ajax 运行的——(例如,我没有禁用 JS)。我知道这是因为我的 onComplete 处理程序执行并且页面垂直滚动条没有重置
-
我有同样的问题,但是当我更新 acripts 时它没有解决。有什么想法吗?
-
@zsharp - 你在使用 Fiddler 吗?如果没有得到它。查看 AJAX 调用发送的 HTTP 请求。验证它不包含 __MVCASYNCPOST 作为参数。如果仍有问题,请清除缓存。你替换了这个文件对吗? MicrosoftMvcAjax.js。我的是 5,287 字节长
-
@zsharp - 还要确保如果您使用的调试版本也复制了 MicrosoftMvcAjax.js 的调试版本