System.Windows.Forms.Control.TagプロパティをASP.NETでも使いたい。Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。System.Windows.Forms.Control.TagプロパティをASP.NETでも使いたい。501件0ウィンドウズフォームのコントロールであるSystem.Windows.Forms.ControlにはTagプロパティというのがあり、好きなデータを突っ込んで便利に使えるようです。ASPのSystem.Web.UI.WebControls.WebControlにはTagプロパティはないようです。ASPでもTagを使いたいのですがどうすればよいでしょうか。いまのところ解決策として各コントロールクラスを継承してTagプロパティを追加した新しいクラスを作って使っていますがもっと良い解決策はないでしょうか。票0WebControlには拡張属性を設定する領域としてAttributesプロパティが定義されています。data-tag属性を使用する場合、.aspx側は以下のようになります。/></div></form>コードビハインドではAttributesのインデクサーから値が取得/設定できます。2).ToString();}ただ本来はHTML属性を設定する場所ですので、副作用として出力結果にdata-tag属性が追加されることになります。ユーザーに絶対知られたくない値を指定したいのであれば、セッションを利用すると複数同時リクエストの対応が難しいのでPage.ViewStateにJSONなどで保存しておくのが良いと思います。個の銅バッジ回答ありがとうございます。pgrhoさんはユーザーに情報を知られたくないなら複数同時リクエストの対応に難があるとおっしゃる。セッションを使うと具体的にどのような問題が発生するのでしょうか。セッションはWebアプリケーション全体で共通の値ですので、UniqueID等では異なるページ間での重複が発生しえます。これはキーにページの完全修飾名などを含めれば回避できますが、ユーザーが同一のページを同時に開いている場合は単純な方法では回避できません。あと明示的に削除することが難しいのでセッションサーバーの容量を浪費します。8:31回答ありがとうございます。Attributesが思っていたものに近いので使わせていただきます。|1まずWebFormsはブラウザーからのリクエストの度に毎回オブジェクトが生成し直されます。そのため、WinFormsのようにオブジェクトを維持することはできないためTagプロパティが用意されていません。ブラウザーからのリクエスト間で状態を保持する機能としていくつかのサーバー側の状態管理オプションが用意されています。WebFormsからはHttpContext.Current.Sessionでアクセスできます。(セッション状態から値を読み取る、セッション状態の値を保存する)いまのところ解決策として各コントロールクラスを継承してTagプロパティを追加した新しいクラスを作って使っています継承するくらいなら後付けで機能追加可能な拡張メソッドをお勧めします。}}例としてUniqueIDプロパティを使用しましたが、適宜変更してください。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。UIが指定できない0WebBrowserを拡張してWebBrowser2イベントを拾う際にInvalidActiveXStateExceptionが出てしまいます。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。