2010-05-21 87 views
6

我有一个QuestionControl.ascx和一个QuestionControl.ascx.cs后面的代码复制到一个新项目的文件后面的代码。当我建立这个项目在隐藏文件在ASCX宣布控制代码的任何引用给了我这个错误:文件后面的代码无法识别* .ascx中的控件

'QuestionControl' does not contain a definition for 'rdbtnlstQuestion1' and no extension method 'rdbtnlstQuestion1' accepting a first argument of type 'QuestionControl' could be found (are you missing a using directive or an assembly reference?)

这是在我的*的.ascx顶部:

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

我以前也试过代码隐藏:

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

这是我在代码隐藏文件类的顶部,它不包含在一个命名空间:

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

如果在其上添加另一个带有其他控件的空白ascx,那么该控件是否也无法编译? – Tejs 2010-05-21 15:15:01

+0

.NET框架的哪个版本是这样的?而且,可以肯定的是,这是MVC还是WebForms? – 2010-05-21 15:15:29

+0

你检查过命名空间吗? – Glennular 2010-05-21 15:18:32

回答

12

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

+0

我认为你是对的。没有.designer文件,我认为这是问题,因为它会包含ascx中控件的声明。但是我觉得奇怪的是在之前使用过用户控件的项目中,没有设计器文件,它运行良好。我尝试删除并读取用户控件,并且不创建设计器文件。我也尝试手动创建* ascx。designer.cs文件,但该文件不会与其节点下的用户控件相关联,并且仍然会出现错误。 – AaronLS 2010-05-21 15:31:41

+0

你使用什么版本的VS?什么类型的项目(网站,Web应用程序等)? – Jason 2010-05-21 15:35:56

+2

好的,我右键单击* .ascx文件并选择“转换为Web应用程序”,并生成设计器文件并将其关联到ascx文件下。我现在想知道的是告诉Visual Studio设计器文件与特定的ascx文件相关联,因为当我手动创建它时,它不想使用该文件。当然有一些标记说VS“嘿,这是我的设计器文件,使用它”。 – AaronLS 2010-05-21 15:37:07

4

另一个解决方案是:

  • 设计视图中打开您的.ascx页面
  • 右键点击网页的任意位置,并选择刷新

(.ascx.designer .cs文件可能需要关闭,同时进行刷新以便正常工作)

0

I h例如在gridview中创建一个dropdownlist的广告问题。我所做的是在gv之外创建ddl,直到desinger.cs识别出它,然后将控件移到gv中...希望这有助于帮助

0

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

0

什么工作形式我被列在另一个SO答案,我找不到它,所以我在这里重复。

尝试删除您的 “ReflectedSchemas” 文件夹中

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

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

相关问题