マスターページが適用されている以下のフォームを送信しようとしています。
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<p>
What is your name?
<asp:TextBox ID="YourName" runat="server" ClientIDMode="Static"></asp:TextBox>
</p>
<p>
What is your age?
<asp:TextBox ID="YourAge" runat="server" Columns="3" ClientIDMode="Static"></asp:TextBox>
</p>
<p>
What is your favorite color?<br />
<asp:RadioButtonList ID="FavoriteColor" runat="server" ClientIDMode="Static">
<asp:ListItem Selected="True">Red</asp:ListItem>
<asp:ListItem>Green</asp:ListItem>
<asp:ListItem>Blue</asp:ListItem>
</asp:RadioButtonList>
</p>
<p>
<asp:CheckBox ID="EatGreenEggsAndHam" runat="server" Checked="True" ClientIDMode="Static"
Text="Will You Eat Green Eggs and Ham?" TextAlign="Left" />
</p>
<p>
<asp:Button ID="SubmitButton" runat="server" Text="Submit Form"
PostBackUrl="~/About.aspx"
onclick="SubmitButton_Click" />
</p>
</asp:Content>
POST メソッドを使用して、フォームから送信されたデータを取得しようとしています。
About.aspxページで、以下のコードを使用しています
Response.Write(Request.Form["YourName"].ToString());
予想される動作は、テキストボックスに入力された名前を ID "YourAge" で出力することですが、送信されたフォーム要素 ID は以下のように変更されています
ctl00$MainContent$あなたの名前
なぜこれが起こるのですか?ID「YourName」のコントロールの値を取得する必要があります
フォーム送信時にこの「ctl00$MainContent$」の部分を削除したいです。フォームの値を取得することは私の範囲外であり、他の人によって行われています。フォームの値を「ctl00$MainContent$YourName」ではなく「YourName」として送信する必要があるだけです。