私は ASP.NET を初めて使用しますが、入れ子になったサーバー コントロールを見つけることで、特に入れ子になっている場合に常に問題が発生します。
この場合、必要なサーバー コントロールまでの登録ページは次のとおりです。
<asp:CreateUserWizard runat="server" ID="RegisterUser" ViewStateMode="Disabled" OnCreatedUser="RegisterUser_CreatedUser">
<LayoutTemplate>
<asp:PlaceHolder runat="server" ID="wizardStepPlaceholder" />
<asp:PlaceHolder runat="server" ID="navigationPlaceholder" />
</LayoutTemplate>
<WizardSteps>
<asp:CreateUserWizardStep runat="server" ID="RegisterUserWizardStep">
<ContentTemplate>
<fieldset>
<ol>
<li>
<asp:TextBox runat="server" ID="firstName" />
</li>
読みやすくするために、いくつかの HTML 要素だけを削除しました。「firstName」にアクセスしようとしています。次のすべてを試してみましたが、うまくいきませんでした (最初の TextBox は常に null になります)。
TextBox first = (TextBox)Page.Master.FindControl("MainContent").FindControl("firstName");
TextBox first = (TextBox)Page.FindControl("firstName");
TextBox first = (TextBox)RegisterUserWizardStep.FindControl("firstName");
TextBox first = (TextBox)RegisterUser.FindControl("firstName");
助けていただければ幸いです、ありがとう!