You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HttpPost方法未被调用,ActionLink请求提示资源找不到

问题分析与解决办法

兄弟,我一眼就看出问题所在了——你这是请求类型不匹配导致的资源找不到错误!

为什么会出错?

@Html.ActionLink默认生成的是GET请求的锚点链接,当你点击这个链接时,浏览器会发起一个GET请求去访问Dashboard/RemoveActivity。但你的RemoveActivity方法标记了[HttpPost]特性,这意味着这个方法只接受POST请求,完全不处理GET请求,所以服务器自然找不到对应的资源,就抛出了"The resource cannot be found."的错误。

两种解决办法

办法一:让Action接受GET请求(不推荐)

如果你一定要用ActionLink的方式,可以移除方法上的[HttpPost]特性,让它接受GET请求:

public ActionResult RemoveActivity(int id) 
{ 
    activityRepo.Delete(activityRepo.GetById(id)); 
    return RedirectToAction("ActivityDetails"); 
}

注意:这种方式有安全风险!GET请求会把删除的ID暴露在URL里,而且可能被搜索引擎爬虫、误点等意外触发,导致数据被误删,所以非常不推荐用于删除操作。

办法二:用表单提交POST请求(推荐做法)

这是删除操作的标准做法,把ActionLink换成表单,通过按钮提交POST请求:

@using (Html.BeginForm("RemoveActivity", "Dashboard", new { id = a.Id }, FormMethod.Post))
{
    <button type="submit" class="btn btn-link">Remove</button>
}

这样点击按钮时,浏览器会发起POST请求,正好匹配你标记了[HttpPost]的RemoveActivity方法,就能正常执行删除逻辑并跳转了。

内容的提问来源于stack exchange,提问作者Teije

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:23:01