1

これは、asp.net mvc3 アプリケーションのカミソリ ビューに関するものです。ユーザーが既存の画像を削除できるカスタム画像ギャラリーを実装しています。他の要求により、ユーザーが削除をクリックしたときに画像を削除するべきではありません。代わりに、画像が配置されているスパンを削除するだけですが、画像の ID を保存し、後でそれをサービスに渡す必要があります。削除、保存などのすべての作業。

私が抱えている問題は、ビューのライフサイクル全体で複数の値を保存する方法が見つからないことです。私はこれを試しました-List<long> idToBeDeleted = new List<long>();コントローラーの最初に初期化してから、実際のメソッドで使用します:

public void DeletePicture(long documentImageID)
        {
            if (documentImageID != null)
            {
                idToBeDeleted .Add(documentImageID);
            }
        }

他の場所でも宣言しようとしましたが、コントローラー内のすべてがビューからの呼び出しごとに再初期化されるようです-私は正しくないかもしれません。実際、私には正しくないようですが、今のところそのように見えます. だから私の質問は、フォーム全体が送信されたときにそれらのIDを収集してコントローラーに渡す方法です(これはすべてフォーム内にあります)C#で実行できますか、クライアント側のソリューションを検索する必要があります。なれ?

4

1 に答える 1

2

その通りです。MVC はステートレスです。AJAX の角度からこれにアプローチできます。

  • 画像に関連する「ToBeDeleted」フィールドを true に設定するアクションを作成します。おっしゃったように、後でサービスにこれらすべての画像を削除させることができます。

  • 削除ボタンで AJAX 呼び出しを使用して、画像の ID をこのコントローラーに渡します。

  • 成功したら、画像/div を非表示にします。

  • ページの更新時に削除されるのを待っていない画像のみを表示します。

于 2013-06-03T12:24:08.427 に答える