0

在 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" />

问题是,允许将其作为公共财产访问并在回发时保留状态的最佳实践是什么?

4

1 回答 1

1

最简单的选择是将UserControl委托上的公共属性设置为子控件的属性:

public string Name
{
   get { return name.Text; }
   set { name.Text = value; }
}

然后TextBox将负责在回发时维护状态。

于 2013-03-14T12:03:38.213 回答