1

これは、私が先週投稿した「Ajax.ActionLink not Posting」へのフォローアップの質問です。最終的にそれを Post に渡すと、Delete アクションが適切に呼び出され、レコードが削除されました。Delete メソッドは RedirectToAction("List") を返すため、削除されたレコードを除いた新しいデータ セットが再リストされます。実際に起こることを除いて - 何もありません。リストは変更されません。Ajax.ActionLink を呼び出すと、ドキュメント内の指定された要素 (UpdateTargetId オプション パラメーター) のみを置き換えることになっている Ajax の結果が返されます。また、何も指定していないため、まったく新しいページであっても、何も置き換えられません。

私の質問は、Html.ActionLink が呼び出されたかのように、AjaxOption.UpdateTargetId に何を渡してページ全体を消去し、新しい結果をリロードするかです (Ajax.ActionLink を使用する唯一の理由はメソッドを GET ではなく POST で呼び出す必要がありました)。(そして、このページはマスター ページを使用するため、body 要素に ID を配置するオプションはありません。)

4

1 に答える 1

0

Ajax なしで POST を実行できます。フォームを使用し、ActionLink を [送信] ボタンに変更する必要があります。それが一番簡単な方法かもしれません。

それ以外の場合は、PartialView を返すように List アクションを変更する必要があります。これは、ページの外部 div として設定できる UpdateTargetId にレンダリングされるものです。

リストをリロードする必要は本当にありますか? Ajax POST を実行してデータベース内の行を削除し、AjaxOptions の OnSuccess プロパティを使用して JavaScript 関数を呼び出し、ページの html から行を削除することができます。

于 2010-06-22T15:19:52.100 に答える