- ベストアンサー
ASP.NETにHtmlInputCheckBox
ASP.NETにHtmlInputCheckBoxを追加する際に Nameプロパティを設定しても、 自動で「ctl01」のように固定されてしまいます。 Nameタグを作成して、Post後の処理を行いたいのですが、 Nameタグを設定することは可能でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ASP.NETのWebフォームで用意されているコントロールを使う場合、POST後の処理は コントロールに用意されているプロパティ等を利用するのが一般的です。 直接リクエストの値を取り出すこともできますが、そのような手法はコントロールを 使っている場合は特殊だ、という認識を持ってください。 コントロールのプロパティで値を見ればいいだけじゃないかと思いますが。。。 たぶん、他の言語でWebアプリの作成経験があり、その経験にもとづいて処理を しようと考えられてるのではないかと思いますが、ASP.NETのようにある特定の 考え方にもとづいてフレームワークが用意されている場合に、そのフレームワークの 考え方に沿わないでプログラムを記述しようとするのは手間もかかりますし、 せっかく用意されている様々な利点が利用できない、ということになります。 コントロールの使い方を学ばれることをおすすめします。 #他の言語での開発経験があり、そこでMVCパターンをつかわれているようなら ASP.NET MVCを利用するほうが理解しやすいような気もします。
その他の回答 (1)
- shockatz
- ベストアンサー率80% (153/191)
「HtmlInputCheckBox」というのは、<asp:CheckBox>のことでしょうか? で、これをMasterPageやFormViewのようなコンテナ・コントロールの中に入れると、ID/Nameが勝手につけられて困る、ということ? 確かに、他システムなどにフォームをPOSTする場合など、あの仕様には困りますよね。。 という前提で進めますと、 ASP.NET 4.0以降なら、ClientIdMode="static"を使って、ID名ごと固定する方法がありますが、全バージョン対応なら、javascript使って一時的にnameプロパティを変更する方法はどうですか? <asp:checkbox id="myCheckBox" runat="server" ... /> があるなら、jQueryで $('#<%=(CheckBox)FormView1.FindControl("myCheckBox").ClientID%>').attr("name", "myCheckBox"); 外していたらすいません。