“HtmlSelect”不能有类型为“LiteralControl”的子级

在早几天的工作中碰到了这个问题:
如果在select中添加runat=server就会报错:“HtmlSelect”不能有类型为“LiteralControl”的子级。
但是如果不添加runat=server,那么在后台就会找不到这个控件。

在网上搜了搜,用以下方法去解决这个问题:
在页面中放一个hidden,如果select改变后,把select的值赋给hidden。

--------------------------------------------------------------------------------------------------------------------------------------------
<input id="provinceHidden" type="hidden" name="provinceHidden" runat="server"> 

<select id="province" onchange="window.document.Form1.provinceHidden.value=this.options[this.selectedIndex].value;" name="province">
<option value="Not set" selected>选择省份</option>
</select>

protected System.Web.UI.HtmlControls.HtmlInputHidden provinceHidden;
原文地址:https://www.cnblogs.com/bankey/p/938664.html