aspx页有控件,但后台取不到,且报重复定义的错误原因及解决办法。

VS2008碰上很古怪的错

原因:没有在A页插入控件(就是直接写代码,或者拖控件),而是从B页直接复制控件部分的代码到A页。
例如复制
<asp:TextBox ID="txtUserName" name="PersonName" runat="server" Text=""></asp:TextBox>  

错误情况:在A页的前台aspx页面,明明已有了控件的,但后台用ID(txtUserName)却取不到。

              并且会有命名冲突,A页之前声明过的控件,再用同样的ID,会报错。

 

错误原因:在页面里拖控件,那么控件会直接在设计器(后缀为.aspx.designer.cs的文件)注册,编译后,DLL文件中,有控件类的属性。


而只是复制aspx页面的代码,设计器里是没有同时更新的。还是用之前的设计器定义。所以新添加的控件后台取不到,重命的控件,ID冲突。
 

解决方法:删除设计器文件例如。GetQuestionPaper.aspx.designer.cs
再重新转为web应用程序(意义就是重新生成设计器文件)。

之前用VS2010开发却碰上过这种情况,有空了拿2010试试。

能不用就不用服务器控件。

posted @ 2013-06-14 14:39  cclient  阅读(437)  评论(0编辑  收藏  举报