マスターページを使用して変換したい既存の ASP.Net Web アプリケーションがあります。これを行う過程で、HTML 要素用に生成された HTML ID の先頭に ContentPlaceHolder の ID が付いていることがわかりました。これは、ContentPlaceHolder の clientidmode=static を設定したときに期待できることです。ID を使用する既存のクライアント側スクリプトが多数あるため、マスターページを使用するとこの部分が壊れます。すべての JavaScript を実行して、Control.ClientID を使用して JavaScript を呼び出すことを確認するのは非常に大きな仕事です。 、その多くはハードコードされているためです。
プレフィックスを無効にする方法はありますか? ClientIdMode=static を設定するすべてのコントロールを作成すると、これを成功させることができますが、すべてのコントロールが ClientIdMode=static を持つようにするために、これを一度設定することをお勧めします。それは可能ですか?または、ContentPlaceHolder の NamingContainer をオーバーライドすることは可能ですか?
プラットフォームは.Net 4.0
(以下の回答で説明されているように、web.config で ClientIdMode=static を使用して上記の問題を修正した後)、「name」属性が自動的に生成され、導入前の値に設定されていないという問題に遭遇しました。マスターページ。これにより、多くの Request.Form[] を含む既存のサーバー コードに問題が生じます。この問題を解決するためのベストプラクティスは何ですか?
ありがとうジハード