我有一个MVC项目,其中有一个带有提交按钮的表单。我添加了一个jquery客户端处理程序,拦截表单提交事件。 javascript函数调用与没有javascript时调用的相同MVC操作。
$("form[action ='/List/CreateItem']").submit(
function() {
$.post($(this).attr("action"), $(this).serialize(), function(response) { $("#results").html(response); });
return false;
}
);
在调用的MVC操作中,我测试Request.IsAjaxRequest以决定是返回视图还是返回JSON结果。我的问题是Request.IsAjaxRequest返回false,即使我知道调用是从jquery函数进行的。 (我知道这是因为如果我在jquery函数中注释掉$ .post行并且只留下返回false行,则没有任何反应。如果我取消注释该行,则执行该操作 - 但它返回视图,因为IsAjaxRequest是是的。)
此行应该导致Request.IsAjaxRequest为真吗?
答案 0 :(得分:3)
Request.IsAjaxRequest
属性应该反映X-Requested-With
HTTP标头的存在。这个标题实际上是否已发送到服务器?正如James建议的那样,尝试使用Fiddler或类似的代理服务器替代方案对此进行分析。
答案 1 :(得分:1)
答案 2 :(得分:0)
我不确定区别是什么,但是确定是否存在差异的可能方法是使用像Fiddler(www.fiddlertool.com)这样的HTTP分析工具,并查找两个调用之间可能存在的差异。 / p>
答案 3 :(得分:0)