Dav*_*nna 6 ajax model-view-controller actionlink
我试图通过POSTing而不是GETting导航到MVC动作.(该操作是DELETE,我不希望它通过外部链接访问.)
我在生成的网格中使用链接
Ajax.ActionLink("Remove", "Delete", new { saID = Model.Said, id = e.id }, new AjaxOptions { HttpMethod = "POST", Confirm = "Are you sure you want to delete this item?" })
Run Code Online (Sandbox Code Playgroud)
这会生成以下HTML:
<a href="/Equipment/Delete/102424/229933" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, confirm: 'Are you sure you want to delete this item?', httpMethod: 'POST' });">Remove</a>
Run Code Online (Sandbox Code Playgroud)
我的问题是当我点击链接时,我通过GET而不是POST进入删除操作,并且没有发生确认对话框.我一直在谷歌搜索几个小时,只是不停地缠绕在轴上.我究竟做错了什么?
您的页面上可能存在其他一些javascript错误,导致无法处理AJAX POST的javascript运行.在这种情况下,链接回退到它的默认行为(GET).最简单的方法是使用IE8开发人员工具或Firefox/Firebug(我更喜欢这些),并在页面加载或调用您的操作时查看控制台中是否有任何错误.如果您使用的是IE,则需要使用Internet Options -> Advanced和取消选中Disable script debugging.
修复你的javascript错误,我认为它只会开始工作.
我想在接受的答案下将其添加为评论但不知何故没有选项将其作为评论输入,因此将其添加为答案
在我的情况下,我必须在MicrosoftAjax.js和MicrosoftMvcAjax.js之前添加"jquery.unobtrusive-ajax.min.js",然后动作链接开始启动ajax请求.但这是一个GET,我想要发帖,所以我只是添加HttpMethod = "Post"了'AjaxOptions`.就是这样.
| 归档时间: |
|
| 查看次数: |
4929 次 |
| 最近记录: |