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

时间:2012-06-11 16:22:39

标签: c# asp.net

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

我的问题:

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

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

并且我想在我的控件中执行相同操作,但是当我将'ControlToValidate'传递给控件ID时出现,我收到此错误:

  

无法创建“System.Web.UI.WebControls.WebControl”类型的对象   从它的字符串表示'txtFirstname'   'ControlToValidate'属性。

我需要实现什么样的模式才能确保我能充分利用我的'ascx'页面,而不必在我的'ascx.cs'代码隐藏页面中连接所有内容。

P.S。我在“ascx”页面的“设计视图”中调用了我创建的“标签”,但我认为这可能是错误的术语,我怀疑这是我无法在Google上找到任何标志的原因的一半。

1 个答案:

答案 0 :(得分:0)

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

<asp:TextBox id="txtFirstName" 
      Text="Enter a value" 
      runat="server"/>

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

我猜你RequiredFieldValidator置于同一范围内 - 导致此问题。