【问题标题】:MVC Delete Action Link Not WorkingMVC 删除操作链接不起作用
【发布时间】:2023-04-08 10:16:01
【问题描述】:

我的操作链接如下所示:

<%= Html.ActionLink("Delete Message", "DeleteMessage", new { messageId=item.MESSAGEID })%>

我的控制器中的操作如下所示:

    [AcceptVerbs(HttpVerbs.Delete)]
    public ActionResult DeleteMessage(int messageId)
    {

        Message message = context.Messages.FirstOrDefault(m => m.MESSAGEID.Equals(messageId));
        if (message != null)
        {
            context.Messages.DeleteOnSubmit(message);
            context.SubmitChanges();
        }
        return View();
    }

但由于某种原因,我的模型中的项目仍然没有被删除。我哪里出错了?

【问题讨论】:

    标签: asp.net-mvc html.actionlink


    【解决方案1】:

    ActionLink 产生一个带有链接的a 元素,该链接可通过标准GET 请求访问。但是,您的操作明确指定它需要 DELETE 方法,因此它实际上从未被调用。

    此外,GET 请求不应执行任何“破坏性”操作。请参阅this 实现“删除”链接。

    【讨论】:

      【解决方案2】:

      ActionLink(即a html 标记)发送GET 请求而不是DELETE,因此您的操作不会映射到请求。

      您可以use Ajax 执行删除请求(请参阅“执行 Ajax 删除”部分)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-20
        • 2014-03-09
        • 2016-02-11
        • 2020-08-31
        • 2022-01-18
        • 2011-03-08
        相关资源
        最近更新 更多