我真的很沮丧,即使经过数小时的研究,我也无法弄清楚这个简单的问题:
@Ajax.ActionLink("Test", "Test", new AjaxOptions { HttpMethod = "Post" })
<a data-ajax="true" data-ajax-method="Post" href="/Home/Test">Test</a>
它尽可能简单,但即使我指定了POST,它也会向/ Home / Test发出GET请求。
在_Layout.cshtml里面我有
<body>
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
包jquery val包括
jquery.validate.js
jquery.validate.unobtrusive.js
答案 0 :(得分:6)
通常,当您要提交数据时,请使用表单和提交按钮。在我看来,在动作链接上使用POST
方法并不是一个好主意。
尝试使用@Ajax.BeginForm(...){}
。
在执行此操作之前,请确保已在web.config中启用<add key="UnobtrusiveJavaScriptEnabled" value="true" />
。检查完毕后,打开Web应用程序并查看源代码,确保包含以下文件:
<script src="∼/Scripts/jquery-1.10.2.js"></script>
<script src="∼/Scripts/jquery.unobtrusive-ajax.js"></script>
请确保您的浏览器已启用Javascript。
如果这些都不能解决您的问题,请尝试将网址添加到选项中:
@Ajax.ActionLink("Test", "Test", new AjaxOptions { HttpMethod = "Post", Url = Url.Action("Test") })
这是用户禁用Javascript的情况的后备,您错过了对jquery.unobtrusive-ajax.js
的引用。