all*_*hou 2 jquery razor asp.net-mvc-5
我真的很沮丧,即使经过数小时的研究,我也无法弄清楚这个简单的问题:
@Ajax.ActionLink("Test", "Test", new AjaxOptions { HttpMethod = "Post" })
<a data-ajax="true" data-ajax-method="Post" href="/Home/Test">Test</a>
Run Code Online (Sandbox Code Playgroud)
虽然我指定了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>
Run Code Online (Sandbox Code Playgroud)
包jquery val包括
jquery.validate.js
jquery.validate.unobtrusive.js
Run Code Online (Sandbox Code Playgroud)
通常,当您想要提交数据时,您可以使用表单和提交按钮.在我看来,POST在动作链接上使用方法并不是一个好主意.
尝试使用@Ajax.BeginForm(...){}.
在执行此操作之前,请确保已<add key="UnobtrusiveJavaScriptEnabled" value="true" />在web.config中启用.检查完毕后,打开Web应用程序并查看源代码,确保包含以下文件:
<script src="?/Scripts/jquery-1.10.2.js"></script>
<script src="?/Scripts/jquery.unobtrusive-ajax.js"></script>
Run Code Online (Sandbox Code Playgroud)
确保您的浏览器启用了Javascript.
如果这些都不能解决您的问题,请尝试将URL添加到选项中:
@Ajax.ActionLink("Test", "Test", new AjaxOptions { HttpMethod = "Post", Url = Url.Action("Test") })
Run Code Online (Sandbox Code Playgroud)
这是用户已禁用Javascript的案例的后备,要么您错过了引用jquery.unobtrusive-ajax.js.