代码隐藏文件无法识别* .ascx中的控件

时间:2010-05-21 15:13:49

标签: c# asp.net

我有一个QuestionControl.ascx和一个QuestionControl.ascx.cs代码隐藏在我复制到新项目的文件后面。当我构建项目时,代码隐藏文件中的任何引用到ascx中声明的控件都会给我这个错误:

  

'QuestionControl'不包含   'rdbtnlstQuestion1'的定义   没有扩展方法   'rdbtnlstQuestion1'接受第一个   'QuestionControl'类型的参数   可以找到(你错过了吗?   使用指令或程序集   引用?)

这是我的* .ascx:

的顶部
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="QuestionControl.ascx.cs" Inherits="QuestionControl" %>

我也尝试过CodeBehind:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="QuestionControl.ascx.cs" Inherits="QuestionControl" %>

这是我在代码隐藏文件中的顶级,它不包含在命名空间中:

public partial class QuestionControl : System.Web.UI.UserControl
{

6 个答案:

答案 0 :(得分:13)

尝试删除您的设计器文件。当您打开ascx文件时,VS.NET应该为您重新创建它。我之前遇到过这样的问题,设计师出于某种原因导致不同步,删除它通常会解决问题。

答案 1 :(得分:5)

另一个解决方案是:

  • 设计视图
  • 中打开.ascx页面
  • 右键单击页面上的任意位置,然后选择刷新

(。ascx.designer.cs文件可能需要在刷新时关闭才能工作)

答案 2 :(得分:1)

我在另一个SO答案中列出了什么样的形式,我找不到它,所以我在这里重复一遍。

尝试删除

中的“ReflectedSchemas”文件夹

C:\ Users \用户YOURUSENAME \应用程序数据\漫游\微软\ VisualStudio的\ 15.0_079f391b \ ReflectedSchemas

这对我有用。有时我会收到“无法识别”的错误,我会再次删除此文件夹。非常感谢OP。多年来一直让我疯狂。现在我在HTML中没有“曲线”,后面的代码中没有“红色条”(aspx.cs)

答案 3 :(得分:1)

在VS2017中,.ascx文件的上下文菜单中没有选项“转换为Web应用程序”。相反,您需要选择.ascx文件,然后在上方菜单中单击“项目”,然后选择“转换为Web应用程序”(在“项目”菜单中一直向下。

答案 4 :(得分:0)

我遇到了一些问题,比如在gridview中创建一个下拉列表。我所做的是在gv外部创建ddl,直到desinger.cs识别出它,然后将控件移到gv中...希望这有帮助

答案 5 :(得分:0)

我遇到了同样的问题,代码隐藏并没有识别.aspx页面上的控件。我正在使用VS 2012.我右键单击了该项目;点击转换为Web应用程序;并且它添加了以前根本没有的所有设计器文件。我重建了一切,现在很好。