2

シナリオは次のとおりです。

  1. 一部の JavaScript によって部分ビューが取得され (部分ビューを返すコントローラーへの AJAX 呼び出し)、HTML が DOM に追加されます。
  2. 部分ビューには、レンダリングされたフォームが含まれていますAjax.BeginForm()
  3. フォームが送信される (送信ボタンがクリックされる) と、2 回投稿されます。

(JavaScript を使用して追加するのではなく)元のビューで部分ビューをレンダリングすると、Html.Partial()期待どおり、フォームは 1 回だけ送信されます。

部分ビューを追加するスクリプトは次のようになります。

$.ajax({
   type: 'GET',
   url: '/MyController/MyAction',
   cache: false,
   contentType: "application/html; charset=utf-8",
   dataType: 'html',
   success: function (result) {
      $('#body').append(result);
   }
});

何か案は?:) ありがとう!

4

1 に答える 1

8

私はアホです。私のコントローラーはPartialViewではなくViewを返しました。もちろん、すべての JavaScript リソースが含まれていました。つまり、目立たない二重のスクリプト リンクが問題の原因でした。:/

于 2013-10-04T10:02:36.757 に答える