因为我们不知道你的 ASPX 是什么样子,所以我们有点在黑暗中拍摄。
假设你有一个看起来像这样的 aspx
<form id="form1" runat="server" DefaultFocus="formVw$txtName">
<div>
<asp:FormView ID="formVw" runat="server">
<ItemTemplate>
Name:
<asp:TextBox ID="txtName" runat="server"
Text='<%# Eval("FirstName") + " " + Eval("LastName") %>' />
</ItemTemplate>
</asp:FormView>
</div>
</form>
你会发现这样的控件
TextBox tb = this.FindControl("form1$formVw$txtName") as TextBox;
if (tb != null)
{
//Access TextBox control
}
您最初发布的代码正在寻找其中的控件,Form
这意味着,如果您有另一个控件(FormVw
例如),那么您的代码将找不到嵌套的文本框。
编辑
你说你的表格看起来像这样
<form runat="server" id="form1">
<p>
<label for="passwordStr">Password</label>
<input type="text" textmode="password" id="passwordStr" name="passwordStr" maxlength="50">
</p>
</form>
改成这个
<form runat="server" id="form1">
<p>
<label for="passwordStr">Password</label>
<asp:TextBox runat="server" TextMode="password" ID="passwordStr" maxlength="50">
</p>
</form>
然后像这样访问密码字段
string password = passwordStr.Text;