不能在“设计”视图中将“复杂对象”作为参数传递

本文关键字:对象 复杂对象 参数传递 复杂 设计 视图 不能 | 更新日期: 2023-09-27 18:36:59

我已经创建了自己的验证控制器,以使用我自己的用户控件。

我的问题 :

经典验证器接受"设计视图"中的参数,例如

<asp:RequiredFieldValidator ControlToValidate="txtFirstname" runat="server" />

我想在我的控件中做同样的事情,但是当我向"ControlToValidate"传递控件 ID 时,出现此错误:

无法创建类型为"System.Web.UI.WebControls.WebControl"的对象 从其字符串表示形式"txtFirstname" 为 "控件以验证"属性。

我需要实现什么"模式"来确保我可以充分利用我的"ascx"页面,而不必挂接"ascx.cs"代码隐藏页面中的所有内容。

附言我将我在"ascx"页面上创建的"标签"称为"设计视图",但我认为这可能是错误的术语,我怀疑这是我在谷歌上找不到任何原因的一半原因。

不能在“设计”视图中将“复杂对象”作为参数传递

你的代码应该看起来像这样(全部在.ascx):

<asp:TextBox id="txtFirstName" 
      Text="Enter a value" 
      runat="server"/>
 <asp:RequiredFieldValidator id="RequiredFieldValidator1"  
      ControlToValidate="txtFirstName"
      Text="Required Field!" 
      runat="server"/>

我猜您没有RequiredFieldValidator放在同一范围内 - 导致此问题。