79

私が取り組んでいる Web アプリケーションがあります (C# を使用した ASP.NET2.0、VS2005 を使用)。すべてが正常に機能していましたが、突然エラーが発生しました。

Error 1 The name 'Label1' does not exist in the current context

そして、ページのコードビハインドでコントロールを使用するたびに、43 種類の他のものを使用しました。

これは 1 ページでのみ発生します。そして、コードビハインドがコントロールを認識していないようです。もう 1 つの興味深い点は、インテリセンスがいずれのコントロールも取得していないことです。

ソリューション ファイルを消去し、obj ファイルを削除し、プロジェクトからファイルを除外してから再度追加し、VS を閉じて再起動し、コンピューターを再起動しようとしましたが、どれも機能しませんでした。

4

18 に答える 18

119

これは古い質問であることは知っていますが、同様の問題があり、他の誰かに利益をもたらす可能性がある場合に備えて、解決策を投稿したいと考えていました。使い方を学んでいるときに問題が発生しました:

  • ASP.NET 3.5
  • C#
  • VS2008

AJAX 対応のページを作成しようとしていました (これに慣れていない場合は、ScriptManager オブジェクトの使用に関するチュートリアルを参照してください)。C# コードを使用してページ内の HTML 要素にアクセスしようとしましたが、HTML ID 値の識別子が「現在のコンテキストには存在しません」というエラーが表示されました。

それを解決するには、次のことを行う必要がありました。

1. サーバーで実行

C# コードで変数として HTML 要素にアクセスするには、aspx ファイルの HTML 要素タグに次の値を配置する必要があります。

runat="server"

Visual Studio IDE のツールボックスの一部のオブジェクトは、ページに追加されたときに、この値が自動的に含まれません。

2. 自動生成された C# ファイルを再生成します。

  • ソリューション エクスプローラーの aspx ファイルの下に、*.aspx.cs と *.aspx.designer.cs の 2 つのファイルがあるはずです。デザイナー ファイルは自動生成されます。
  • 既存の *.aspx.designer.cs ファイルを削除します。デザイナーファイルのみを削除するようにしてください。ページの C# コードが含まれているため、もう 1 つを削除しないでください。
  • 親 aspx ファイルを右クリックします。ポップアップ メニューで、[ Web アプリケーションに変換] を選択します。

これで、C# コード ファイルで要素にアクセスできるようになります。

于 2009-12-30T17:03:35.730 に答える
47

@Page ディレクティブのコード ビハインド ファイル名と Inherits プロパティを確認し、両方が一致していることを確認します。

于 2009-04-01T17:37:52.193 に答える
34

コピーして貼り付けた古いページなど、同じコード ビハインド ファイルを参照する他のページを除外します。

于 2009-10-13T14:15:21.450 に答える
14

私も同じ問題を抱えていました。プロジェクトに「MyPage.aspx」と「MyPage.aspx のコピー」の両方が含まれていることがわかりました。

于 2011-07-12T20:27:52.717 に答える
3

また、他のファイルと同じ(部分的な)クラスを誤って継承または定義しようとするファイルがないことを確認してください。これらのファイルは、エラーが実際に発生したファイルとは無関係に見える可能性があることに注意してください。

于 2011-04-27T08:19:06.557 に答える
1

プロジェクトでこれを修正するには、現在のファイルをバックアップし (コードがまだ残っているため)、現在の aspx (および子ページ) を削除し、新しい aspx を作成し、バックアップ ファイルの内容を新しいファイルにコピーしました。

于 2016-11-09T14:54:52.127 に答える
1

データ コンテキストを変更した後も同じエラーが発生します。しかし、私はなじみのないものに遭遇します。ファイルを手動で公開することに慣れています。通常、これを行うと、公開フォルダーに App_Code フォルダーが表示されません。Bu 私は、あなたの助けを借りて Web サーバーに直接公開する VS 12 パブリッシングの使用を開始しました。そして、プリコンパイルされたアプリケーションであるというエラーが表示されます。次に、機能した app_code フォルダーを削除します。しかし、それはあなたが得ているデータコンテキストエラーを私に与えました. したがって、すべてのファイルを削除し、ファイル制限なしで再度公開を実行すると (すべてのフォルダーとファイルが公開されます)、魅力的に機能しました。

于 2013-05-02T13:13:11.100 に答える
1

私は同じ問題を抱えていました.2つの属性の間にスペースがありませんでした.

AutoGenerateColumns="False"DataKeyNames="ProductID"

それ以外の

AutoGenerateColumns="False" DataKeyNames="ProductID"
于 2014-05-09T18:58:08.413 に答える
1

これと同じエラーが発生しましたが、WPF エラーでした。私はプロジェクトを再配置していて、次のように定義されたコントロールを持っていました:

<local:CustomControl Name="Custom" /> 

コード ビハインドで Custom.Blah を使用しようとしましたが、次のエラーが発生しました。

The name 'Custom' does not exist in the current context

私にとってのトリックは、Xaml のコントロールを次のように変更することでした。

<local:CustomControl x:Name="Custom" />

これが誰かを助けることを願っています!

于 2012-06-08T15:08:31.280 に答える
0

Visual Studio 2010プロジェクトからaspxファイルを再生成しようとしていたため、コントロールにclientidmode = "Static"プロパティが含まれていたため、同じ問題が発生しました。これが削除されると解決されました。

于 2013-01-01T06:00:50.690 に答える
0

DataList から変換した後に Repeater を微調整すると、同様の問題が発生しました。

問題は、不要な属性を削除するときに誤って 2 つの属性を結合してしまったことです。

<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS">
    .
    .
    .
</asp:Repeater>

これにより、デザイン ファイルでリピーターが生成されなくなりました。

于 2013-01-03T17:01:10.960 に答える
0

この同じ問題に遭遇しました。どうやら、.aspx/.aspx.cs ファイルの 1 つと同じ名前の BLL 内のクラスを呼び出すべきではありません。私はそれらが同じスコープ内にないなどと思っていましたが、Visual Studio の内部の仕組みをめちゃくちゃにしました。そのようなエラーが発生する場合、これを行うことを妨げるものがないことに少し驚いています。とにかく、.aspx/.aspx.cs ファイルを削除して、プロジェクトを再構築するだけです。次に、別の名前でそれらを元に戻します。コードをすべて再入力したくない場合は、コードを別のエディターにコピーして貼り付けることができます。

于 2014-03-18T15:08:37.293 に答える
0

上記のソリューション オプション #2 は、Web aspx アプリケーションではなく、Windows フォーム アプリケーションで機能します。Webアプリケーションで同様のエラーが発生しました。同じ名前のユーザーコントロールがあるファイルを削除することでこれを解決しました。このaspxファイルは実際にはバックアップファイルであり、プロセスのどこにも参照されていませんでしたが、それでもエラーが発生したためバックアップ ファイルに登録されたユーザー コントロールの名前は、プロセス フローで参照された aspx ファイルとまったく同じ名前でした。そのため、バックアップ ファイルを削除してソリューションをビルドしたところ、ビルドは成功しました。

これが同様のシナリオの誰かに役立つことを願っています。

ヴィジャヤ・ラクシュミ。

于 2012-10-05T14:38:40.730 に答える
0

私の場合、Web フォームを作成したときに、WebForm1.aspx とそれぞれの名前 (WebForm1) という名前が付けられました。手紙、私はそれを別の名前に変更しました。ほぼすべての場所で手動で名前を変更しましたが、デザイナー ファイルの 1 つの場所でまだ「WebForm1」と表示されていました。

私もそれを変更し、このエラーを取り除きました。

于 2014-04-30T20:16:12.627 に答える