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试试。
能不用就不用服务器控件。