1

私はウェブフォームアプリケーションを持っています。

このページには、一連のテキスト ボックスと 1 つのASP:FileUploaderを含む from があります。

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

ファイルをチャンクでアップロードするように httpHandler を設定しました。ユーザーが「アップロード」をクリックした後に起動する必要があります。

私が解決した唯一の方法はPostBackURL、「アップロード」ボタンに属性を設定することです。例えば

PostBackURL = ".upload"

これは httpHandler のパスにマップされます。

しかし、私の問題は、「PostBackURL」が Redirect であり、httpHandler を起動しますが、「.upload」ページ (コンテンツが空) にリダイレクトされ、ユーザーが他のテキストボックスで情報を失ったことです。

では、httpHandler を起動してブラウザを現在のページにとどまらせる最善の方法は何でしょうか? iframe が唯一のオプションですか?

4

1 に答える 1

0

非表示の要素に投稿するために、<iframe>私が常に従ってきた一般的なパターンは次のとおりです。

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

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

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

  4. その時点で、フォームの「ターゲット」属性をクリアできます。

が「通常」に投稿される場合は<form>、ファイルを無効にすることをお勧めします<input>。(状況によって異なります。

于 2012-04-27T14:23:30.647 に答える