0

1つのビューに2つのフォームがあります。それらの1つは、データベースに写真をアップロードする仕事をします。ページ全体(およびユーザーが「その他のフォーム」に入力したデータ)をそのままにしておく必要がありますが、その間、ユーザーは写真をアップロードすることもできます。しかし、それは機能しません。

問題は、ユーザーが写真を送信すると、ページ全体が変更されることです。さらに悪いことに、新しいページには「写真のアップロード」フォームしか含まれていません。Return View();「画像のアップロード」アクションメソッドにより、ビューがレンダリングされます。:/

アクションメソッドを見てください:

public ActionResult Upload(IEnumerable<HttpPostedFileBase> files)
        {
          //Upload the pictures .

            return View();
        }

何もレンダリングせず、「ファイルがアップロードされました!」のようなメッセージをユーザーに表示するために、Actionメソッドのreturnタイプを変更するだけで(おそらく?)必要な結果を達成することは可能ですか???

または、代わりにAjaxを使用する必要がありますか?

事前にアドバイスをありがとう;)

4

2 に答える 2

0

ビューがモデルに対して強く型付けされている場合は、いつでもモデルをユーザーに返して、定数フォームを「再入力」することができます(おそらく最悪のオプション)。別のオプション(おそらく最良)はもちろんajaxです。

于 2012-08-09T12:04:46.363 に答える
0

AJAXを使用してファイルをアップロードすることはできませんが、AJAXのような非表示のiframeを使用してファイルをアップロードするサードパーティコンポーネントを使用することはできます。あなたはグーグルjqueryajaxアップロードプラグインをすることができます。

他のフォームの場合、Ajax.BeginForm / PartialViewを使用して、完全な更新を回避できます。

于 2012-08-09T17:10:44.543 に答える