@ Ajax.ActionLink使用GET而不是POST

我真的很沮丧,即使经过数小时的研究,我也无法弄清楚这个简单的问题:

@Ajax.ActionLink("Test", "Test", new AjaxOptions { HttpMethod = "Post" }) Test 

它尽可能简单,但即使我指定了POST,它也会向/ Home / Test发出GET请求。

在_Layout.cshtml里面我有

  @RenderBody() @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)  

包jquery val包括

 jquery.validate.js jquery.validate.unobtrusive.js 

通常,当您要提交数据时,请使用表单和提交按钮。 在我看来,在动作链接上使用POST方法并不是一个好主意。

尝试使用@Ajax.BeginForm(...){}

在执行此操作之前,请确保已在web.config中启用 。 检查完毕后,打开Web应用程序并查看源代码,确保包含以下文件:

   

还要确保您的浏览器启用了Javascript。

如果这些都不能解决您的问题,请尝试将URL添加到选项中:

 @Ajax.ActionLink("Test", "Test", new AjaxOptions { HttpMethod = "Post", Url = Url.Action("Test") }) 

对于用户已禁用Javascript的情况,这是一个回退,要么您错过了对jquery.unobtrusive-ajax.js的引用。