Asp.net 文本框。未在UserControl中分配文本属性

Asp.net 文本框。未在UserControl中分配文本属性,asp.net,user-controls,textbox,Asp.net,User Controls,Textbox,我的UserControl代码如下,我在UserControl中有一个TextBox,我想从网页访问TextBox.Text属性 UcUserForm用户控件插入myform.aspx网页 在myform.aspx PageLoad上,我为文本框设置如下值 ucUserForm.TbFirstName.Text = "Tomas"; 一切正常。当网页加载时,我会在文本框中看到名称。然后我将值从Tomas更改为Jonas 在myform.aspx按钮上单击“我正在尝试读取值” var mynew

我的UserControl代码如下,我在UserControl中有一个TextBox,我想从网页访问TextBox.Text属性

UcUserForm用户控件插入myform.aspx网页

在myform.aspx PageLoad上,我为文本框设置如下值

ucUserForm.TbFirstName.Text = "Tomas";
一切正常。当网页加载时,我会在文本框中看到名称。然后我将值从Tomas更改为Jonas

在myform.aspx按钮上单击“我正在尝试读取值”

var mynewname = ucUserForm.TbFirstName.Text; 
尽管这个名字在网页的文本框中从Tomas改为Jonas,但我还是得到了老名字Tomas。我不明白问题出在哪里

用户控制代码隐藏

  public partial class UcUserForm: System.Web.UI.UserControl
    {


        public TextBox TbFirstName
        {
            get { return tbFirstName; }

        }

}
用户控制网页

  <asp:TextBox  ID="tbFirstName" autocomplete="off"  MaxLength="25" runat="server"></asp:TextBox>

在default.aspx中注册用户控制代码

<%@ Register Src="ucUserForm.ascx" TagName="ucUserForm" TagPrefix="uc1" %>
<uc1:ucUserForm ID="ucUserForm" runat="server" />

每次加载页面时都会进行设置。在初始化阶段尝试

与此类似

 protected void Page_Init(object sender, EventArgs e)
    {
            ucUserForm.TbFirstName.Text = "Tomas";
    }
初始化只在页面的生命周期中发生一次

试试这个:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
           ucUserForm.TbFirstName.Text = "Tomas";
        }
     }

移除“set”访问器:它已被移除。但是问题仍然存在。您能演示如何将用户控件添加到页面中吗?viewstate是否已启用?*@SteveB I添加了用户控件注册码。Viewstate设置为默认启用。