2012-04-27 8 views
1

私はwebformアプリケーションを持っています。どのようにボタンをクリック火災httphandler Asp.net

ページには、テキストボックスのセットと、ASP:FileUploaderが含まれています。

「アップロード」というボタンは、フォーム全体を保存するのとは別にファイルをアップロードします。

ファイルをアップロードするためのhttpHandlerを設定し、ユーザーが[アップロード]をクリックした後に起動する必要があります。

「アップロード」ボタンにはPostBackURLという属性が設定されています。例えばHTTPHandlerののパスにマップ

PostBackURL = ".upload"

しかし、私の問題は "PostBackURL"はリダイレクトで、httpHandlerを起動しますが、その内容は空の ".upload"ページに送られ、ユーザーは他のテキストボックスに情報を失います。

httpHandlerを起動してブラウザを現在のページに置くには、どのような方法が最適ですか? iframeは唯一のオプションですか?隠し要素に投稿する

+0

フォームを非表示のiframeに投稿するか、HTML5ファイルAPIを使って何かを設定します(IEでは動作しません)。 – Pointy

+0

@Pointy JavaScriptを使用して非表示のiframeに投稿する(target = my_iframeを追加する)が、httphandlerでファイルをアップロードした後、fromを自分自身に送信して再読み込みし、テキストボックス内の情報を変更しないで保存するにはどうすればよいですか? ) –

+0

私はどのような答えを書くべきかを知るには十分な情報がありませんでしたが、あなたがちょうどコメントに書いたもので十分です:-) – Pointy

答えて

0

、私は常に続いてきた一般的なパターンは次のとおりです。

  1. は要素の名前を指すように、フォームのターゲットを設定します。 (一般的に私はに古い習慣から同じ「名前」と「id」の値を与えます;それは必要でないかもしれません;

  2. フォームを投稿してください。これはHTTPトランザクションを開始しますが、フォームがあるページを吹き飛ばすことはありません。

  3. POSTへの応答は、JavaScriptを除いて、何も表示されていない(またはほとんど何もない)ページでなければなりません。そのコードは親ページと話して、ファイルのアップロードに問題があったか(画像ファイルが必要なのか、投稿されたファイルがテキストなのかなど)、アップロードが成功したことを伝えます。どちらの場合でも、親ページはエラーメッセージまたは何らかの成功メッセージで自身を更新できます。

  4. この時点で、「target」属性のフォームをクリアすることができます。 <form>が「正常」掲載する場合

は、ファイル<input>を無効にすることができます。 (あなたの状況に応じて)

関連する問題