アプリ版:「スタンプのみでお礼する」機能のリリースについて

ASP.NETにHtmlInputCheckBoxを追加する際に
Nameプロパティを設定しても、
自動で「ctl01」のように固定されてしまいます。

Nameタグを作成して、Post後の処理を行いたいのですが、
Nameタグを設定することは可能でしょうか?

A 回答 (2件)

ASP.NETのWebフォームで用意されているコントロールを使う場合、POST後の処理は


コントロールに用意されているプロパティ等を利用するのが一般的です。
直接リクエストの値を取り出すこともできますが、そのような手法はコントロールを
使っている場合は特殊だ、という認識を持ってください。
コントロールのプロパティで値を見ればいいだけじゃないかと思いますが。。。

たぶん、他の言語でWebアプリの作成経験があり、その経験にもとづいて処理を
しようと考えられてるのではないかと思いますが、ASP.NETのようにある特定の
考え方にもとづいてフレームワークが用意されている場合に、そのフレームワークの
考え方に沿わないでプログラムを記述しようとするのは手間もかかりますし、
せっかく用意されている様々な利点が利用できない、ということになります。

コントロールの使い方を学ばれることをおすすめします。

#他の言語での開発経験があり、そこでMVCパターンをつかわれているようなら
 ASP.NET MVCを利用するほうが理解しやすいような気もします。
    • good
    • 0

「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");

外していたらすいません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!