6

私がやろうとしていること:「適切な」HTTP削除を使用してレコードを削除してみてください。

コントローラーコード:

    [HttpDelete]
    public void DeleteRun(int RunId)
    {
        repository.RemoveEntry(RunId);

    }

かみそりのビュー:

             @Ajax.ActionLink("Delete","DeleteRun",new {RunId = run.RunId},
                         new AjaxOptions() { Confirm = "Are you sure you want to delete this entry?",
                                            HttpMethod = "DELETE",
                                            OnComplete = string.Format("DeleteRunInTable({0})",run.RunId)

                         })

Javascript(別のインクルードファイル内):

   function DeleteRunInTable(RunId) {
       $("tr[data-runid=" + RunId).remove();
}

actionlinkメソッドが作成しているリンク:

 <a data-ajax="true" data-ajax-complete="DeleteRunInTable(11)" data-ajax-confirm="Are you sure you want to delete this entry?" data-ajax-method="DELETE" href="/Runs/Delete/11">Delete</a>

javascriptの部分がまだ機能するかどうかはわかりませんが、心配する必要はありません。一度に一歩踏み出そうとしています:)。これで、従来のタグのように機能し、リンクをクリックすると、hrefのGETリクエストが実行されます。もちろん、コントローラーに[HTTPDelete]を設定したため、404エラーが発生します。私はWeb開発にかなり慣れていないので、javascriptまたはjqueryのいずれかで同じことを行う他の方法があると確信していますが、現時点で知っていることを実行しているだけです。

4

2 に答える 2

9

これは私が最近自分でやったのでうまくいくはずで、私がしなければならなかったHttpMethodのはAjaxOptions引数でを指定することだけでした。

また、ページにjquery.unobtrusive-ajax.jsスクリプトが含まれていることを確認する必要があります。

于 2011-08-03T22:25:42.500 に答える
4

それは実際には単純な解決策でした....私はjquery.unobtrusive-ajax.min.js:Pがありませんでした。私はここに投稿を残しているので、私がやっていることと同じようなことをしようとしている人は誰でも、jqueryとjquery.unobtrusiveを含めることを確認してください。

編集:MVC3を使用している場合はActionLinkがJQueryで機能することを明確にするために、それ以外の場合はMicrosoftjavascriptライブラリを使用します。

于 2011-08-03T22:53:15.170 に答える