Asp.net 无法引用代码隐藏中的控件。Visual Studio 2012

Asp.net 无法引用代码隐藏中的控件。Visual Studio 2012,asp.net,vb.net,visual-studio-2012,user-controls,Asp.net,Vb.net,Visual Studio 2012,User Controls,对于我来说,有很多关于这个反复出现的问题,但没有一个能解决我的问题 问题: 无论我在我的aspx页面中添加了什么控件,它都不会在代码隐藏中被识别。编译不起作用,因为无法识别ID 以下各项均无效: 清洁和重建解决方案。 关闭和打开VS 删除asp.net临时文件 检查项目的目标框架。 检查组件是否都在那里。 检查designer viewn以查看控件是否实际存在 使用JS函数获取控件的ID,以检查它是否是预期的ID 这个问题最近才开始出现。事实上,我可以很好地引用旧控件。 标准ASP控件和Tele

对于我来说,有很多关于这个反复出现的问题,但没有一个能解决我的问题

问题:

无论我在我的aspx页面中添加了什么控件,它都不会在代码隐藏中被识别。编译不起作用,因为无法识别ID

以下各项均无效:

清洁和重建解决方案。 关闭和打开VS 删除asp.net临时文件 检查项目的目标框架。 检查组件是否都在那里。 检查designer viewn以查看控件是否实际存在 使用JS函数获取控件的ID,以检查它是否是预期的ID 这个问题最近才开始出现。事实上,我可以很好地引用旧控件。 标准ASP控件和Telerik控件都存在此问题


有人知道我还应该试试别的吗?请帮助我,我正处于一个项目的中间,这导致不必要的延迟,TA.

确保ASPX文件中的所有ASP.NET控件都有:

runat='server'
标签。。。否则,您将无法引用控件

e、 g

希望这有助于


Rodit

这就是我解决问题的方法。有关详细说明,请参阅上述评论

我注意到,尽管我的项目已经是web应用程序类型,但设计器文件并没有显示出来。 我已通过单击convert to web application(转换为web应用程序)选项强制重新编译设计器文件 然后我就可以引用控件ID了


无论如何都要感谢评论员。

我遇到了类似的问题,因为我使用的是预先生成的登录页面。我的解决方案是将此部分从以下内容更改为:

<asp:Login runat="server" ViewStateMode="Disabled"   RenderOuterTable="false">
<LayoutTemplate>
为此:

<asp:Login ID="asplogin" runat="server" ViewStateMode="Disabled" RenderOuterTable="false">
<LayoutTemplate>
基本上,我只是在asp:Login中添加了一个ID,它允许我通过在控件名前面加上asplogin来从后面访问代码中的对象


asplogin.youControlNameHere

是否在asp页面中重新引用控件?您是否为控件提供了有效的ID。你是否在sytax背后应用了一个你的页面可以参考的代码?我经常在VS2010中看到这一点。我能够解决这个问题的唯一方法是定期清除ReflectedSchemas目录。我有一个执行此操作的bat文件,然后打开VS。对于我的VS2010 vesrion,目录位置是C:\Users\USER\AppData\Microsoft\VisualStudio\10.0\ReflectedSchemas。我认为VS2012是版本11.0如果您使用TFS作为源代码管理,请尝试删除打开解决方案时获取所有内容复选框。它有时会导致VS无法更新页面的设计器文件,这会中断控件引用。此外,您还可以尝试使用网站类型的解决方案,以完全避免使用设计器文件。@Johnny我不明白您的意思。@Mych我找不到该文件夹。你能告诉我你找到的关于这个的资源吗?谢谢,谢谢,但我已经做到了。我忘了把它包括在我尝试过的事情列表中。如果是这样的话,我唯一的建议就是尝试用IIS EXPRESS GUI运行你的asp页面,它是开源的,免费的,只需谷歌一下就可以了。如果这也不起作用,我建议您重新启动项目。。。
<asp:Login ID="asplogin" runat="server" ViewStateMode="Disabled" RenderOuterTable="false">
<LayoutTemplate>