ajax.request,jquery - Request.IsAjaxRequest returns false - Stack Overflow

在MVC项目中,作者遇到一个问题:他在表单提交时使用jQuery的AJAX处理函数,但控制器中的Request.IsAjaxRequest总是返回false。尽管AJAX调用正常执行并触发了MVC动作,但因为IsAjaxRequest的错误判断,导致返回了视图而不是预期的JSON结果。问题在于,即使使用了$.post,IsAjaxRequest仍然不识别请求为AJAX请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I have an MVC project in which I have a form with a submit button. I have added a jquery client-side handler that intercepts the form submit event. The javascript function calls the same MVC action that would have been called without the javascript.

$("form[action ='/List/CreateItem']").submit(

function() {

$.post($(this).attr("action"), $(this).serialize(), function(response) { $("#results").html(response); });

return false;

}

);

In the MVC action that is called, I test for Request.IsAjaxRequest to decide whether to return a view or a JSON result. My problem is that Request.IsAjaxRequest is returning false, even though I know the call is being made from the jquery function. (I know this because if I comment out the $.post line in the jquery function and just leave the return false line, nothing happens. If I un-comment the line, the action gets executed - but it returns the view because IsAjaxRequest is false.)

Should this line cause Request.IsAjaxRequest to be true?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值