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(つまりa、htmlタグ)GETはではなくリクエストを送信するDELETEため、アクションはリクエストにマップされません。

Ajaxを使用してDELETEリクエストを実行できます(「Ajax削除の実行」を参照)。

于 2011-09-13T12:13:41.973 に答える