Ajax.ActionLink未发布

Ajax.ActionLink未发布,ajax,model-view-controller,actionlink,Ajax,Model View Controller,Actionlink,我正试图通过发布而不是获取信息来导航到MVC操作。(该操作是删除操作,我不希望外部链接可以访问该操作。) 我正在使用由生成的网格中的链接 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?" }) 这将生成以下HT

我正试图通过发布而不是获取信息来导航到MVC操作。(该操作是删除操作,我不希望外部链接可以访问该操作。)

我正在使用由生成的网格中的链接

 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?" })
这将生成以下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>


我的问题是,当我点击链接时,我通过GET而不是POST到达删除操作,并且确认对话框没有发生。我已经在谷歌上搜索了几个小时,只是一直缠在车轴上。我做错了什么?

页面上可能存在其他javascript错误,导致处理AJAX帖子的javascript无法运行。在这种情况下,链接返回到其默认行为(GET)。最简单的方法是使用IE8开发工具或Firefox/Firebug(我更喜欢这些),查看在加载页面或调用操作时控制台中是否有任何错误。如果您正在使用IE,则需要使用
Internet选项->高级
并取消选中
禁用脚本调试


修复您的javascript错误,我认为它将简单地开始工作。

我想在accepted answer下添加此作为注释,但不知何故,没有将其作为注释输入的选项,因此添加此作为答案


在我的例子中,我必须在MicrosoftAjax.js和MicrosoftMvcAjax.js之前添加“jquery.unobtrusive ajax.min.js”,然后action link开始启动ajax请求。但这是一个GET,我想要发布,所以我只是在“AjaxOptions”中添加了
HttpMethod=“post”
。就这样

你的权利:我得到的“Sys.Mvc”是未定义的-尽管我已经在我的母版页中包含了所有三个JS脚本文件(MicrosoftJAX、MicrosoftMvcAjax和jquery-1.4.1-vsdoc),但我还需要做什么才能定义Sys.Mvc?@Dave-你是按顺序包括它们的吗
Sys.Mvc
是在MicrosoftMvcAjax.js中定义的,但它是通过从MicrosoftMvcAjax.js调用一个方法来实现的,这似乎是问题所在。当我将fiddler连接到它时,只加载了三个脚本文件中的第一个(MicrosoftAjax.js)。我修正了这一点,这样MicrosoftMvcAjax.js(包含Sys.Mvc的定义)就可以加载了,它确实启动并运行了——很好,等等。我现在得到确认框,但我没有得到我的删除表单。但我明天会调查的。