在ASP.NET Webforms应用程序中,我有一个提交表单,其中包含UserControl,其属性如下:
public string Name
{
get
{
String s = (String)ViewState["Name"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["Name"] = value;
}
}
这是从MSDN演练改编而来。这被假定为“绑定”(不是数据绑定,因为我认为不可能)到ascx中定义的文本框的内容如下:
<asp:TextBox runat="server" ID="name" />
问题是,允许将其作为公共财产访问并在回发时保留状态的最佳做法是什么?
答案 0 :(得分:1)
最简单的选择是将UserControl
委托的公共属性委托给子控件的属性:
public string Name
{
get { return name.Text; }
set { name.Text = value; }
}
TextBox
将负责维护回发状态。