6

私の質問

私は自分自身で答えることができましたが、同じ機能のセットには別の問題があります。何らかの理由で、投稿されたファイルの保存イベントの最初のポストバックは、オブジェクトエラーのインスタンスに設定されていない Ol' オブジェクトにヒットしますが、ファイルをアップロードして保存イベントを発生させる 2 回目の試みで (byte[] に変換されますSQL Server BLOB として保存されます)、実行するはずのすべてのことを行います。

ここで同じ問題

AJAX AsyncUpload コントロールを使用することをお勧めしますが、私は原因を取り除き、問題を処理しないことを固く信じています。asp.netなどについての理解を深めるために、このルートを続けます。

最初のポストバックで「オブジェクト参照が obj の inst に設定されていません」というエラーが発生する理由を特定するのに役立つウィザードがありませんか? コンテンツ ページには、更新パネルでコンテンツ ページをラップするマスター ページがあります。これを行うという私の決定ではありません。保存イベントを対象とするポストバック トリガーを含む更新パネルもあります。

あなたの考えの人々は何ですか?

4

2 に答える 2

13

問題(ここで見られるようにhttp://forums.asp.net/t/1060363.aspx)は、周囲のパネルで可視性プロパティを使用するときに発生するようです(リンクされた質問から来たようです)。

推奨される回避策は、代わりに CSS 可視性を使用することです。これを使用して非表示にします -

<asp:Panel ID="pnlUpload" runat="server" class="workerDetailsPanelLeft" style="display:none">

スレッドからのこれの説明は

コンテナが非表示に設定されている場合、アップロード コントロールは実際には HTML としてレンダリングされず、フォームの enctype が enctype="multipart/form-data" に設定されず、ファイル アップロード コントロールが選択したファイルをサーバー。回避策は、FileUpload コントロールが HTML にレンダリングされるようにする (Visible=false ではなくスタイルを display:none に設定する) か、enctype を手動で設定することです。

したがって、別の回避策は、フォームタグをこれに変更することです

<form id="form1" enctype="multipart/form-data" runat="server">

それらのいずれかがあなたの問題を解決するはずだと思います。

于 2012-07-20T09:13:42.277 に答える
5

Page_Load イベントのコードで同じことを行うことができます。このコードを入力すると、問題が解決します。

Page.Form.Attributes.Add("enctype", "multipart/form-data");
于 2014-05-08T05:37:37.180 に答える