我有一个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
{
答案 0 :(得分:13)
尝试删除您的设计器文件。当您打开ascx文件时,VS.NET应该为您重新创建它。我之前遇到过这样的问题,设计师出于某种原因导致不同步,删除它通常会解决问题。
答案 1 :(得分:5)
另一个解决方案是:
(。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应用程序;并且它添加了以前根本没有的所有设计器文件。我重建了一切,现在很好。