我有一个控制器操作正在由使用'Ajax.ActionLink()'创建的链接执行,问题是我在操作中无法告诉该请求是一个AJAX请求,因为{{1}总是返回false。
Request.IsMvcAjaxRequest()
无法使用Request.IsMvcAjaxRequest()
生成的请求吗?
以下是我用来生成链接的代码:
Ajax.ActionLink()
当我查看IsMvcAjaxRequest
extension method的代码时,它看起来只适用于AJAX Forms而不适用于AJAX ActionLinks。
更新11/13
如果我将AjaxOptions中的HttpMethod更改为POST,一切都很好。任何人都知道如何在使用DELETE方法时使Request.IsMvcAjaxRequest()正常工作?
答案 0 :(得分:2)
删除时没有表单参数。尝试添加__MVCASYNCPOST = true作为路由数据(URL中的查询参数)
答案 1 :(得分:0)
因为“IsMvcAjaxRequest”只返回(request [“__ MVCASYNCPOST”] == true),并检查查询字符串,表单和cookie ...它应该与POST,GET等一起使用。
尝试在你的代码中加入一个断点,并确保它正在命中POST,然后更改为“DELETE”,看看它是否正在击中你的代码(因为这应该有效)。可能是你有一个只允许“POSTS”通过的ActionFilter(或其它阻止行为的东西)。