ajax - 如何在 ASP.NET MVC 中使用 Ajax.ActionLink 作为 POST?
问题描述
所以我试图从我的 ASP.NET MVC 项目中的索引页面中删除条目,这在很大程度上基于演示项目,但我不想像设置演示项目那样重定向到删除页面。我想在我的控制器中使用 post 方法删除并重新加载:
// POST: Consumers/Delete/5
[HttpPost]
public async Task<ActionResult> Delete(Guid id)
{
// ...
}
我尝试使用@Html.ActionLink
它不起作用,因为我学到了。所以这里有很多非常相似的问题,有(接受的)答案表明这应该有效:
@Ajax.ActionLink("Delete", "Delete", "Consumer", new { id = item.Id }, new AjaxOptions { HttpMethod = "POST" })
唯一的问题是它不起作用。如果我这样做,那么我会得到一个 404,它的 URL 正确,但 HTTP 方法错误
我知道尽管 Ajax 链接设置了 GET,但它仍在触发 GET,因为如果我将我的 POST 方法重新标记为 GET 方法,那么我将进入它。
那么有人知道我在这里缺少什么吗???
解决方案
操作链接始终生成 GET 方法。因此,只需从操作中删除 POST 即可。
public async Task<ActionResult> Delete(Guid id)
{
// ...
}
恕我直言,最好不要为动作分配方法,因为不同的浏览器可以生成不同的方法。
推荐阅读
- python - Flask-sqlalchemy Rowproxy 无法修改
- assembly - 将移位的立即值加载到寄存器中的单条指令?
- javascript - 背景交叉淡入淡出过渡javascript和css
- azure-cosmosdb - 从 Azure 数据工厂副本导入 CosmosDB 中的 JSON 数据时出现问题
- java - 在 Heroku 上部署 jhipster 应用程序时出现 PostgreSQL 错误
- oracle - ORA-32031: WITH 子句中查询名称的非法引用
- java - 如何从 .lua 文件中解析/读取特定数据?
- python - 数据帧中数据的遍历和操作
- laravel - 创建只包含关联而不显式设置 id 的记录
- javascript - mxgraph 避免边缘重叠节点或其他边缘