将 TextBox 文本设置为母版页面中的特殊值 class

Set TextBox Text to special value from Mater Page class

所以我在 Visual Studio 中有带有母版页的 Web 窗体项目。 Add.aspx 我有:

<div class="form-group">
    <asp:textBox runat="server" ID="surname" CssClass="textbox"></asp:textBox>
    <label for="surname">Surname</label>
</div>

我想从母版页在此文本框中设置文本。在 Add.aspx.cs 我有:

protected void Page_Load(object sender, EventArgs e)
{
}
public void SetSurname(String value)
{
    this.surname.Text = value;
}

并且在 Site.Master.cs 我正在尝试调用 SetSurname 将其设置为特殊值:

protected void Page_Load(object sender, EventArgs e)
{
    Add AddForm = new Add();
    AddForm.SetSurname("Test");
}

但我收到错误消息:Object reference does not point to an instance of an object 指向 this.surname.Text = value;。我哪里错了吗? Mabye 我应该使用一些功能,如 Page_Afterload 或等

如果我理解正确,TextBox surename 只存在于 Add.aspx 中。如果是这样,您将无法从除 Add.aspx 之外的任何其他地方调用方法 SetSurname(),因为不能保证控件 surename 存在于当前显示页面中。 此外,行 Add AddForm = new Add(); 是没有意义的,除非您在代码的其他地方使用它。如果你想使用 SetSurname(),你应该从 Add.aspxPage_Load() 开始。

如果我有任何错误,请通知我。