2016-07-12 4 views
5

.NETコアのドキュメントには、「モバイル固有のビューの作成」というタイトルのページがありますが、構築中です:https://docs.asp.net/en/latest/mvc/views/mobile.htmlモバイル固有のビュー/デバイス検出

誰もモバイルビューの構築やデバイス検出の実行に関するいくつかの洞察を持っていますか?

+6

旧来のMVCフレームワークでは、「MyView.cshtml」や「MyView.iOS.cshtml」などの名前を付けることができ、ユーザーに基づいて適切に表示されるビルトイン検出が使用されていましたエージェント。しかし、この習慣は、今日はかなり落胆しています。すべてのデバイスで動作するレスポンシブなデザインを作成する方がよいでしょう。たとえば、「レスポンシブなデザインのブートストラップ」を探してください。ブートストラップはもともとTwitterで開発されたレスポンシブルデザインです – Tseng

+0

おそらく@Tsengはここにありますが、FYI(私はレスポンシブデザインについてはあまり関係ありません: - ))... "MyView.cshtml "と" MyView.iOS.cshtml "の場合、MVCの' LanguageViewLocationExpander'がどのように動作するかを見ることができます。 –

+0

@Tseng Answerとしてコメントを追加したい場合は、誰もが言っているように受け入れられました。 –

答えて

1

ブラウザのユーザーエージェントに基づく特定の表示は、デバイスの機能について十分に説明していないため、古くなった概念です。たとえば、iPhoneとiPadは異なる画面サイズで表示され、モバイルブラウザでもユーザーエージェントを変更できます。

新しい概念はレスポンシブデザインと呼ばれ、利用可能な画面幅に基づいて特定の要素を表示/非表示する単一のページを作成します。 1つの一般的な応答性の高いCSSフレームワークはBootstrapです。これはもともとTwitterによって開発され、後にオープンソース化されています。

Hereは、レスポンシブデザインの例です。 siteにアクセスしてブラウザの幅を変更すると、ブラウザやモバイルなどのナビゲーション機能(ハンバーガーメニュー)を使用して3から2列から1列のデザインが更新されます。

+1

これはほとんどの場合当てはまりますが、hide/showではなく、小さな画面用に異なるDOMを電話に送信する必要がある場合があります。 – martonx

+3

場合によっては、単純なレスポンシブルデザインが効果的ではありません。場合によっては、初期の読み込みが遅くなるウェブサイトのサイズが大きくなることがあります。もう1つはJSです。JSコードの膨大な量を持っている現代のサイトでは、ほとんどの場合、コンテンツの重いサイト(ニュースアグリゲーター、e-コマース)の中にはこのようなコンテンツをすべて携帯する必要はないかもしれません。それはサーバー側です。 –

1

この機能は、実際にはMicrosoftによって実装されていません。カップルオープンこの質問のための議論があります:彼らからの一般的な答えとして

https://github.com/aspnet/Mvc/issues/4877

https://github.com/aspnet/Razor/issues/751

- 私の視点からのための完璧な答えではありません応答WebデザインとCSSメディアクエリを(使用一般的なWebフレームワークを構築するために自分自身を主張するチーム)。 この機能の実装は、プルリクエストとして存在がある - https://github.com/aspnet/Mvc/pull/4878

このプル要求を忘れているように見えるので、私は別のプロジェクトにこのコードを抽出 https://github.com/laskoviymishka/MvcDeviceDetector

で提供されているあなたは(この実装を使用することができます既存のMVCオブジェクトに追加するのは簡単です)、またはこれを実装します。これはかなり簡単です - あなたはそれを実装し、必要なものを登録するだけです。IViewLocationExpander

関連する問題