1

ASP.NET 4.0、IIS 7.5 を使用。

Controls\MyControl.ascx私はウェブサイトエンジンを持っています。これがモバイルにロードされているかどうかを判断する方法を実装したところですMobile\Controls\MyControl.ascx。これは、私のコントロールとファイルでうまく機能しMasterPage.Masterます。

私が理解できないのは、Default.aspx で同じことを行う方法です。これは、モバイル バージョンであるかどうかを確認できるようにする必要があるため、プログラムでオンザフライで実行する必要があります。グローバルの pre-init イベントで何かをすることを考えていましたが、それが最善の方法かどうかはわかりません。

注: Default.aspx でインライン コードを使用したくありません。Mobileフラグに別のコンテンツ ベースを表示するだけです。これは、シナリオがさらに一歩進んで、ファイルを顧客にも基づいているためです。管理できないすべての顧客。

4

2 に答える 2

3

その場で既定のドキュメントを変更することは、実際には不可能です。

その場で web.config に書き込み、デフォルト ページのモバイル バージョンをロードすることは、率直に言ってひどいものであり、問​​題の真のコンテキストに対する答えではありません。デフォルトページのモバイル版をロードするための答えとしてこれを提案したとしても、開発者として無責任だと思います。

タイトルの基本的な質問に答えるだけでなく、問題の解決を支援しようとしていました. ご存知のように、web.config を変更するとアプリケーションが再起動され、真の解決策としては機能しません。これを行うと、いかなる種類のパフォーマンスも達成できないからです。

これは、モバイルブラウザーを扱うための最良の代替手段 (IMHO) です。 http://51degrees.codeplex.com/

チッ!

于 2012-10-25T15:13:23.223 に答える
1

これを見ている他の人にとっては、解決策を見つけましたが、実行時に web.config ファイルを更新するという考えが気に入らないため、それを実装するかどうかはわかりません。Microsoft.Web.Administration名前空間を使用すると、server.webServer -> defaultDocumentセクションをプログラムで更新できます。これを行うと、パスを default.aspx に変更でき、設定した変数に基づいて読み込まれます。

このリンクは詳細情報を提供する必要があります: http://blogs.msdn.com/b/saurabh_singh/archive/2007/11/24/accessing-iis-7-0-features-programmatically-from-configuration-file-sc.aspx

また、 dll は VS で直接使用できないため、 (64 ビット バージョン)Microsoft.Web.Administrationから追加する必要があります。%windir%\syswow64\inetsrv

于 2012-10-29T08:36:08.653 に答える