所以,我正在我的笔记本电脑和桌面之间进行这个项目。
该项目适用于笔记本电脑,但现在已将更新的源代码复制到桌面上,我在项目中有500多个错误,所有错误都是......
当前上下文中不存在该名称
这是一个例子......
Jobs.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;
}
}
我知道这个错误意味着被引用的控件通常不存在或者不是引用它的类的一部分,但据我所知,这不是这种情况。
任何人都可以提供一些见解吗?
答案 0 :(得分:11)
<强> Jobs.aspx 强>
这是phyiscal文件 - &gt; CodeFile="Jobs.aspx.cs"
这是处理页面事件的类 - &gt; Inherits="Members_Jobs"
<强> Jobs.aspx.cs 强>
这是管理页面事件的部分类 - &gt; public partial class Members_Jobs : System.Web.UI.Page
部分类的其他部分应该是 - &gt; public partial class Members_Jobs
这通常是设计师档案。
你不需要有部分类,并且可以在1个类中声明你的控件而没有设计器文件。
编辑 27/09/2013 11:37
如果你仍然遇到问题我会按照Bharadwaj建议并删除设计器文件。然后,您可以在解决方案资源管理器中右键单击该页面,并且有一个选项,例如“转换为Web应用程序”,它将重新生成您的设计器文件
答案 1 :(得分:10)
如果某人是初学者,他尝试了以上所有方法但仍无法让项目工作。检查命名空间。在将代码从一个项目复制到另一个项目并且忘记更改项目名称空间的情况下,它也会给您带来此错误。
希望它有所帮助。
答案 2 :(得分:4)
&#34;该项目适用于笔记本电脑,但现在已将更新的源代码复制到桌面上......&#34;
我做了类似的事情,创建了两个版本的项目并在它们之间复制文件。它给了我同样的错误。
我的解决方案是进入项目文件,在那里我发现了这样的内容:
<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再次开心。
答案 3 :(得分:3)
我遇到了一个带有元标记的类似问题。在designer.cs
中,控件定义为:
protected global::System.Web.UI.HtmlControl.HtmlGenericControl metatag;
我必须将定义移到.aspx.cs
文件并定义为:
protected global::System.Web.UI.HtmlControl.HtmlMeta metatag;
答案 4 :(得分:2)
来自MSDN网站:
如果在循环或a中声明变量,则经常会发生此错误 尝试或阻止然后尝试从封闭代码访问它 阻止或单独的代码块。
所以在块之外声明变量。
答案 5 :(得分:1)
当我引用dll文件时,我的主项目出现了这个问题。
问题是引用dll的主项目的目标是比dll更低的框架版本。
所以我提升了我的目标框架版本(右键单击项目 - &gt;应用程序 - &gt;目标框架),错误消失了。
答案 6 :(得分:0)
I solved mine by using an Import directive under my Page directive. You may also want to add the namespace to your Inherits attribute of your Page directive.
Since it appears that your default namespace is "stman.Members", try:
<%@ Page Title="" Language="C#" MasterPageFile="~/Members/Members.master" AutoEventWireup="true" CodeFile="Jobs.aspx.cs" Inherits="stman.Members.Members_Jobs" %>
<%@ Import Namespace="stman.Members"%>
Additionally, data that I wanted to pass between aspx.cs and aspx, I put inside a static class inside the namespace. That static class was available to move data around in the name space and no longer has a "not in context" error.
答案 7 :(得分:0)
我也面临类似的问题。原因是我在.aspx页面中完成了更改,但没有在设计器页面中完成更改,因此我得到了上述错误。在设计器页面中创建引用时,我能够构建解决方案。
答案 8 :(得分:0)
I also faced a similar issue, the problem was the form was inside a folder and the file .aspx.designer.cs
I had the namespace referencing specifically to that directory; which caused the error to appear in several components:
El nombre no existe en el contexto actual
This in your case, a possible solution is to leave the namespace line of the Members_Jobs.aspx.designer.cs
file specified globally, ie change this
namespace stman.Members {
For this
namespace stman {
It's what helped me solve the problem.
I hope to be helpful
答案 9 :(得分:0)
当我错误地在母版页的top指令前面添加了一些文本时,发生了同样的问题,我的项目中包含的所有页面上的所有控件开始显示,在当前上下文中不存在。在论坛上花了很多时间并进行了自我分析之后,我发现错误地添加了文本并删除了文本,但是并不能解决问题。然后,我不得不单击每个错误以打开关联的页面,以便VS可以加载该页面并识别它,一旦在VS中加载了代码,由于VS可以识别它,因此来自特定页面的错误开始消失。单击每个错误,在VS编辑器中加载每个页面对我来说都是成功的窍门,您只需要做一次,因为稍后它会被VS自动识别。我会说这是Visual Studio Glitch。
答案 10 :(得分:0)
在我们的案例中,除了将.csproj projet文件上的ToolsVersion从14.0更改为1 stated by Dominik Litschauer之外,我们还必须安装MSBuild的更新版本,因为编译是由Jenkins作业触发的。安装适用于Visual Studio 2019的构建工具后,我们已经获得了MsBuild版本16.0和所有新的C#功能都可以正常编译。
答案 11 :(得分:0)
我遇到了这个问题,发现用于调试的几个文件共享相同的 CodeFile 和 Inherits 值。将这些更改为唯一解决了我的问题。