59

だから、私はラップトップとデスクトップの間でこのプロジェクトに取り組んでいます。

プロジェクトはラップトップで動作しますが、更新されたソース コードをデスクトップにコピーしたところ、プロジェクトに 500 以上のエラーがあり、そのすべてが...

名前が現在のコンテキストに存在しません

ここに一例があります...

ジョブ.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Members/Members.master" AutoEventWireup="true" CodeFile="Jobs.aspx.cs" Inherits="Members_Jobs" %>

<%@ Register Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" TagPrefix="aj" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:UpdatePanel runat="server" ID="upJobs">
        <ContentTemplate>
            <!-- page content goes here -->
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

Jobs.aspx.cs

public partial class Members_Jobs : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            loadJobs();
            gvItems.Visible = false;
            loadComplexes();
            loadBusinesses();
            loadSubcontractors();
            loadInsurers();

            pnlCallback.Visible = false;
            pnlInsurer.Visible = false;
        }
    }

    // more goes down here
}

これは、designer.cs ファイルのサンプルです...

namespace stman.Members {


    public partial class Jobs {

        /// <summary>
        /// upJobs control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.UpdatePanel upJobs;
    }
}

このエラーは、参照されているコントロールが通常存在しないか、それを参照しているクラスの一部ではないことを意味しますが、私が見る限り、ここではそうではありません。

誰でも洞察を提供できますか?

VS2012 スクリーンショット

4

14 に答える 14

19

上記のすべてを試してもまだプロジェクトを機能させることができなかった初心者の場合。名前空間を確認してください。あるプロジェクトから別のプロジェクトにコードをコピーし、プロジェクトの名前空間を変更するのを忘れた場合にも、このエラーが発生します。

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

于 2014-11-27T08:58:10.130 に答える
16

ジョブ.aspx

これは物理ファイルです ->CodeFile="Jobs.aspx.cs"

これは、ページのイベントを処理するクラスです ->Inherits="Members_Jobs"

Jobs.aspx.cs

これは、ページ イベントを管理する部分クラスです ->public partial class Members_Jobs : System.Web.UI.Page

部分クラスの他の部分は、public partial class Members_Jobs通常はデザイナー ファイルです。

部分クラスを持つ必要はなく、コントロールをすべて 1 つのクラスで宣言でき、デザイナー ファイルはありません。

編集2013/09/27 11:37

それでも問題が解決しない場合は、Bharadwaj が提案したとおりにデザイナー ファイルを削除します。次に、ソリューション エクスプローラーでページを右クリックすると、デザイナー ファイルを再生成する [Web アプリケーションに変換] などのオプションがあります。

于 2013-09-26T12:03:10.343 に答える
6

「プロジェクトはラップトップで動作しますが、更新されたソース コードをデスクトップにコピーしたところ...」

プロジェクトの 2 つのバージョンを作成し、それらの間でファイルをコピーして、同様のことを行いました。それは私に同じエラーを与えました。

私の解決策は、プロジェクト ファイルに移動することでした。そこで、次のようになっていることがわかりました。

<Compile Include="App_Code\Common\Pair.cs" />
<Compile Include="App_Code\Common\QueryCommand.cs" />

次のようになりました。

<Content Include="App_Code\Common\Pair.cs">
  <SubType>Code</SubType>
</Content>
<Content Include="App_Code\Common\QueryCommand.cs">
  <SubType>Code</SubType>
</Content>

それらを元に戻すと、Visual Studio は再び満足しました。

于 2014-08-28T15:44:25.660 に答える
5

dll ファイルを参照したときに、メイン プロジェクトでこの問題が発生しました。

問題は、dll を参照するメイン プロジェクトが、dll よりも低いフレームワーク バージョンを対象としていたことでした。

そこで、ターゲット フレームワークのバージョンを上げて (プロジェクトを右クリック -> アプリケーション -> ターゲット フレームワーク)、エラーが消えました。

于 2017-07-06T11:08:53.443 に答える
3

メタタグで同様の問題に遭遇しました。ではdesigner.cs、コントロールは次のように定義されていました。

protected global::System.Web.UI.HtmlControl.HtmlGenericControl metatag;

.aspx.cs定義をファイルに移動し、次のように定義する必要がありました。

protected global::System.Web.UI.HtmlControl.HtmlMeta metatag;
于 2013-12-06T17:11:48.230 に答える
1

私も同様の問題に直面しました。問題は、フォームがフォルダー内にあり.aspx.designer.cs、名前空間がそのディレクトリを特に参照していたファイルでした。これにより、いくつかのコンポーネントにエラーが表示されました。

El nombre no existe en el contexto actual

これはあなたの場合、考えられる解決策は、グローバルに指定されたファイルの名前空間行を残すことです。つまり、これを変更しますMembers_Jobs.aspx.designer.cs

namespace stman.Members {

このため

namespace stman {

それは私が問題を解決するのを助けたものです。

お役に立てれば幸いです

于 2018-09-18T19:39:14.997 に答える
0

Page ディレクティブの下で Import ディレクティブを使用して解決しました。Page ディレクティブの Inherits 属性に名前空間を追加することもできます。

デフォルトの名前空間は「stman.Members」のように見えるので、次を試してください。 <%@ Page Title="" Language="C#" MasterPageFile="~/Members/Members.master" AutoEventWireup="true" CodeFile="Jobs.aspx.cs" Inherits="stman.Members.Members_Jobs" %> <%@ Import Namespace="stman.Members"%>

さらに、aspx.cs と aspx の間で渡したいデータを、名前空間内の静的クラスに入れました。その静的クラスは、名前空間内でデータを移動するために使用でき、「コンテキスト外」エラーはなくなりました。

于 2016-03-04T18:10:56.210 に答える