莫名的无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为XXX问题

本文介绍了一个ASP.NET复合控件中出现的类型转换错误问题,并详细解释了错误产生的原因,即开始标签和结束标签之间的空格导致系统将其识别为LiteralControl而非预期的TextBox控件。

今天遇到一个问题,我写了一个复合控件,里面由很多子控件组成,当我引用其中一个子控件时,例如:

(TextBox)Controls[3]
运行时产生错误:无法将类型为“System.Web.UI.LiteralControl”的对象强制转换“System.Web.UI.TextBox”。
一般发生这种问题是索引写错了,就像上面的第4个子控件并不是TextBox,但经我严密检查,发现并没有产生此类错误!
然后我再看使用了该控件的页面,该源代码是如下形式:
<cc1:Poll ID="Poll1" runat="server">
   
</cc1:Poll>
于是终于找到问题的所在,由于开始标签和结束标签之间存在空格,故自然而然地被看成了System.Web.UI.LiteralControl控件,将空格去掉后,就一切正常了。
<cc1:Poll ID="Poll1" runat="server"></cc1:Poll>

转载于:https://www.cnblogs.com/lolicon/archive/2009/02/21/1395375.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值