日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图

發(fā)布時(shí)間:2024/4/14 asp.net 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在ASP.NET MVC 4中,可以很簡單地實(shí)現(xiàn)針對不同的瀏覽器自適應(yīng)布局和視圖。這個(gè)得歸功于MVC中的"約定甚于配置"的設(shè)計(jì)理念。

默認(rèn)的自適應(yīng)

MVC 4自動地為移動設(shè)備瀏覽器和PC設(shè)備瀏覽器進(jìn)行自適應(yīng)。針對布局頁面,默認(rèn)的文件名為_Layout.cshtml,這個(gè)默認(rèn)會被所有的瀏覽器使用。但如果我們希望在移動設(shè)備上面,呈現(xiàn)一個(gè)不同的布局,只需要添加一個(gè)名稱為_Layout.Mobile.cshtml的布局頁面就可以了。同樣的規(guī)則,也適用于普通的視圖頁面。例如Index.cshtml默認(rèn)是被所有的瀏覽器使用的,但如果添加了Index.Mobile.cshtml,則在移動設(shè)備上面,會自動使用這個(gè)新的視圖進(jìn)行呈現(xiàn)。如下圖所示

那么,為什么會能夠自動實(shí)現(xiàn)這樣的功能呢?或者我們該問問,怎么樣才能區(qū)分移動設(shè)備瀏覽器呢?其實(shí),這個(gè)說起來是不難的

下面這個(gè)文章介紹了關(guān)于瀏覽器檢測的一些基本概念http://msdn.microsoft.com/zh-cn/library/x3k2ssx2(v=vs.100).aspx

在ASP.NET MVC中,是在什么位置,通過什么樣的方式來進(jìn)行這個(gè)檢測,并且據(jù)此進(jìn)行布局或視圖的選擇的呢?

通過分析源代碼(http://aspnetwebstack.codeplex.com/ ),我們可以在下面的代碼中發(fā)現(xiàn)端倪

所以,這個(gè)功能是在DisplayModeProvider這個(gè)類型中實(shí)現(xiàn)的。它默認(rèn)注冊了兩個(gè)所謂的DefaultDisplayMode,其中第一個(gè)是有條件判斷的,根據(jù)IsMobileDevice屬性判斷是不是移動設(shè)備瀏覽器,如果是,則使用一個(gè)固定的前綴Mobile。這個(gè)DefaultDisplayMode類型,會自動做路徑的Transform。

?

自定義適應(yīng)規(guī)則

?

如果理解了上面的原理,我們就可以根據(jù)需要添加自己的規(guī)則。例如,我們可以為iPhone設(shè)備添加一個(gè)特定的顯示模型,可以修改global.asax中的代碼。

?

這樣的話,只要添加下面的布局或者視圖頁面的話,就可以很簡單地實(shí)現(xiàn)針對iPhone設(shè)備的呈現(xiàn)了。

轉(zhuǎn)載于:https://www.cnblogs.com/chenxizhang/p/3840733.html

總結(jié)

以上是生活随笔為你收集整理的ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。