0

我的操作链接如下所示:

<%= 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();
    }

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

4

2 回答 2

7

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

此外,不应对GET请求执行“破坏性”操作。请参阅有关实施“删除”链接的内容。

于 2011-09-13T12:13:12.623 回答
1

ActionLink(即ahtml 标签)发送GET请求而不是DELETE,因此您的操作未映射到请求。

您可以使用 Ajax来执行 DELETE 请求(请参阅“执行 Ajax 删除”部分)。

于 2011-09-13T12:13:41.973 回答