2009-04-20 9 views
0

私はコントロールアダプターを理解しているので、さまざまなブラウザーで異なるHTMLレンダリングができるようになっています(つまり、.browsersファイルにそれらを登録する...)。特定のブラウザ用にレンダリングしない場合は、ASP.Netコントロールを拡張する上でアダプタを使用する理由を教えてください。

しかし、人々は既定のブラウザのアダプタを登録するだけで、ASP.NetコントロールのRenderメソッドをオーバーライドするのに使用しているようです。

これは本当ですか?もしそうなら、なぜコントロールから継承し、アダプタを使用するのではなく、Renderメソッドをオーバーライドしないのですか?

オーバーライドの利点は、アダプターではできないプロパティーを追加できることです。

私は、アダプタを無効にする秘密のソースを紛失していないことを確認したいだけです。

答えて

2

はい、デフォルトブラウザのアダプタを登録するのはかなり一般的です。この背後にある主な考え方は、既存のコントロールのレンダリング機能をオーバーライドすることです。例えば。いわゆる'Css Friendly' control adaptersと呼ばれています。この努力は、コントロールがより多くの標準に準拠したHTMLを生成するようにするためのものでした。

基本的に、ここで欠けているのは、標準のasp.netコントロールを使用する既存のサイトで、既定のブラウザを対象としたコントロールアダプターのセットをドロップして、「良い」または「違う」マークアップ作成したカスタムコントロールを使用するようにサイトを変更します。

+0

私はマイクロソフトがブラウザ固有のアダプタの概念を放棄し、アダプタをより一般的にするかどうか疑問に思います。 – Deane

+0

ブラウザ固有のアダプタは、モバイル/デバイス固有のコンテンツのレンダリングにも非常に便利です。したがって、特定のレンダリングを必要としない「標準」メインブラウザセット(IE8、Firefox、Chrome、Opera)であっても、モバイル/デバイス固有のブラウザレンダリング用の場所であり、アダプタアーキテクチャはこの要件をかなりうまく処理できるため、ブラウザ固有のアダプタがすぐになくなるという考えは見られません。 –

関連する問題