ASP.NET网站项目移动控件后出现CS0103名称不存在于当前上下文错误
问题:ASP.NET 网站项目生成无报错但调试时提示控件名不存在于当前上下文
报错信息
The name 'xxx' does not exist in the current context
问题背景
在Designer中剪切粘贴移动控件后出现该问题,尝试重启设备、清理并重新生成解决方案均未解决。
- 项目类型为网站项目而非Web应用项目,不存在
*.aspx.designer.cs文件,架构老旧但项目体量过大无法迁移 - 移动控件前对应代码可正常运行,原有控件无异常,移动过的控件、新增控件都会触发相同报错
- 相关代码示例:
*.aspx代码:
*.aspx.cs代码:<span id="span_msg" runat="server">Msg</span>span_msg.InnerText = "the error is...";
排查过程
- 生成解决方案无任何报错,按F5调试时弹出提示「生成失败,是否要继续上次成功生成的版本?(默认否)」,输出窗口显示报错
error CS0103: The name 'span_msg' does not exist in the current context - *.cs文件中的
span_msg无报错标记,Intellisense可正常识别该名称,重命名为其他名称会触发报错提示,改回原名后报错消失,说明Visual Studio本身可以识别到.cs文件和Designer中span_msg的关联 - 完全删除Designer和代码中的对应控件,从工具箱添加常规ASP控件并设置新ID,仍然出现生成无错、F5调试报错的问题,判断问题不出在控件本身,而是页面处于异常状态
问题修复结论
该问题大概率由Visual Studio异常导致,拉取该页面的其他历史版本即可解决。
额外注意:当同解决方案中其他不相关的页面或项目出现缺失分号这类基础语法错误时,错误列表也会出现大量同类的CS0103报错。
内容的提问来源于stack exchange,提问作者Roland Kwee
相关产品推荐
相关产品推荐

