MVC删除操作链接不起作用

时间:2011-09-13 12:10:14

标签: asp.net-mvc html.actionlink

我的行动链接如下:

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

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

2 个答案:

答案 0 :(得分:6)

ActionLink生成一个a元素,其中包含使用标准GET请求访问的链接。但是,您的操作明确指定它需要DELETE方法,因此它实际上永远不会被调用。

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

答案 1 :(得分:1)

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

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