1

(以前: ASP.Net コードビハインドが Web ページでコントロールを見つけられなかった)

私はVS2008を使用しています。

どの秘密のスイッチを切り替える必要があるか、または誤ってトリップ ワイヤにつまずいたかはわかりませんが、プロジェクトで作成した最後のフォームは非常に深刻な動作不良を起こしています。フォームに設定します。分離コード ファイルは存在しますが、フォームで宣言されているコントロールへの参照でコンパイル エラーが生成されます。

最も明白な手がかりは、フォームのマークアップの最初の行が次のようになっていることです。

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="UserSignature.aspx.vb"
  Inherits="EEI_App.UserSignature" %>

インテリセンスは最初の行全体に下線を付け、愚かな「ファイルまたはアセンブリを読み込めませんでした」というメッセージを表示しました。これは、参照が正しく設定された、アプリフォルダーに明確かつ目に見える完全に無関係なDLLを見つけることができないというものです.

最初、Intellisense は "CodeBehind" 設定に下線を引くだけで、"File UserSignature.aspx.vb が見つかりませんでした" と言っていました。- その後、何らかの理由で、DLL に関するこの別のメッセージからも始まりました。

私のプロジェクトの他のすべてのフォームは正常にコンパイルおよび動作しており、このフォームと他のフォームの間に明らかな違いはありません。

Visual Studio を開いたり閉じたりしようとしました。再起動を試みましたが、何の違いもありません。プロジェクトに追加するすべての新しいフォームは、独自の分離コードと通信できません。新しいファイルを作成した瞬間から、マークアップによって「ファイル 'NewFile.aspx.vb' が見つかりませんでした」というエラーが表示されます。

何か案は?

ありがとう


私は問題に近づいていると思います。@MatthewMartin、あなたは間違いなくこれまでで最も暖かいです。

コントロールをフォームにドロップすると、何らかの理由で form.aspx.designer.vb が更新されないようです。これがなぜなのかはまだわかりませんが、少なくとも暖かくなってきています!


OK、これは間違いなく問題です。これを反映するように質問の名前を変更しました。基本的な問題は、コントロールをフォームにドロップしたときに form.aspx.designer.vb フォームが更新されないことです。少なくとも回避策のアイデアはありますか -デザイナーを強制的に更新する方法は?

ありがとう!

4

6 に答える 6

2

コントロールのテキストを削除し、すぐに再貼り付けすることで、aspx.vb.designer ページを強制的に再生成できます。

コード ビハインド ページに UserSignature のクラスと EDI_App の名前空間があることも確認してください。また、Web アプリケーション/Web プロジェクトを使用しているかどうかによって、デフォルトの名前空間が異なる場合があります。新しいファイルを作成し、ページ ディレクティブとコード ビハインドのクラス名宣言の間のデフォルト パターンを確認することで確認できます。

最後に、これが変換された 1.1 アプリケーションであったか、コード ビハインドに記述されていない 2.0 アプリケーションであったか

部分クラス

の場合、すべてのコントロール参照を宣言する責任があります。

于 2009-02-01T14:05:02.620 に答える
1

名前を変更しましたか?ベース/プロジェクトの名前空間を変更しましたか? 特に見てくださいEEI_App.UserSignature- それは正しい名前ですか?

簡単にするために、ページの再作成、マークアップのコピーなどを検討してください。

于 2009-02-01T11:58:53.517 に答える
1

これを試して :

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="UserSignature.aspx.vb" Inherits="EEI_App.UserSignature" %>
于 2009-02-01T11:59:33.700 に答える
1

OK、私は自分の答えを見つけました:

すべての作業コードをソース管理にコミットし、開発ツリーを吹き飛ばし、最新バージョンを取得します。

突然、すべてが再び機能します。そして、今日の私のもう一つの問題も解決しました。

開発ツリーを吹き飛ばして、もう一度きれいにやり直すことで、私が切り替えた秘密のスイッチを解決できる人に答えを与えます... :)

于 2009-02-01T18:21:38.080 に答える
1

金曜日にまったく同じ問題が発生しました。場合によっては、VS2008 は aspx、aspx.vb、および designer.vb をすべて同時にチェックアウトするには十分にスマートではありません (VSS をソース管理として使用します - 私は知っていますが、それはクライアントが持っているものです)。私の場合、あらゆる種類の奇妙な動作が発生していました。もちろん、Visual Studio は「役立つ」ようにしようとして、designer.vb をチェックアウトする方法がありません。

解決策は、ページを再度チェックインし、ページにコントロールをドロップして保存 (またはコントロールを削除 - designer.vb が更新される原因となるアクション) です。

于 2009-02-01T19:09:01.430 に答える
1

System.Web (または別の重要な dll、おそらくあなたが言及したその dll) への参照を失った可能性はありますか?
ページまたはユーザー コントロールを dll ソリューションにロードしようとすると、通常、同様の問題が発生します。実際、受け取ったファイルを新しいプロジェクトにロードする必要が 2 度ありましたが、それで解決しました。

于 2009-02-01T13:59:01.510 に答える