溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在ASP.NET MVC中使用Bootstrap框架

發(fā)布時(shí)間:2021-01-19 11:41:36 來源:億速云 閱讀:1033 作者:小新 欄目:編程語言

小編給大家分享一下如何在ASP.NET MVC中使用Bootstrap框架,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

作為一名Web開發(fā)者而言,如果不借助任何前端框架,從零開始使用HTML和CSS來構(gòu)建友好的頁面是非常困難的。特別是對(duì)于Windows Form的開發(fā)者而言,更是難上加難。

正是由于這樣的原因,Bootstrap誕生了。Twitter Bootstrap為開發(fā)者提供了豐富的CSS樣式、組件、插件、響應(yīng)式布局等。同時(shí)微軟已經(jīng)完全集成在ASP.NET MVC 模板中。

Bootstrap結(jié)構(gòu)介紹

你可以通過http://getbootstrap.com.來下載最新版本的Bootstrap。

解壓文件夾后,可以看到Bootstrap的文件分布結(jié)構(gòu)如下,包含3個(gè)文件夾:

  • css

  • fonts

  • js

css文件夾中包含了4個(gè).css文件和2個(gè).map文件。我們只需要將bootstrap.css文件包含到項(xiàng)目里這樣就能將Bootstrap應(yīng)用到我們的頁面中了。bootstrap.min.css即為上述css的壓縮版本。

.map文件不必包含到項(xiàng)目里,你可以將其忽略。這些文件被用來作為調(diào)試符號(hào)(類似于Visual Studio中的.pdb文件),最終能讓開發(fā)人員在線編輯預(yù)處理文件。

Bootstrap使用Font Awesome(一個(gè)字體文件包含了所有的字形圖標(biāo),只為Bootstrap設(shè)計(jì))來顯示不同的圖標(biāo)和符號(hào),fonts文件夾包含了4類的不同格式的字體文件:

  • Embedded OpenType (glyphicons-halflings-regular.eot)

  • Scalable Vector Graphics (glyphicons-halflings-regular.svg)

  • TrueType font (glyphicons-halflings-regular.ttf)

  • Web Open Font Format (glyphicons-halflings-regular.woff)

建議將所有的字體文件包含在你的Web應(yīng)用程序中,因?yàn)檫@能讓你的站點(diǎn)在不同的瀏覽器中顯示正確的字體。

EOT字體格式文件需要IE9及以上瀏覽器支持,TTF是傳統(tǒng)的舊字體格式文件,WOFF是從TTF中壓縮得到的字體格式文件。如果你只需要支持IE8之后的瀏覽器、iOS 4以上版本、同時(shí)支持Android,那么你只需要包含WOFF字體即可。

js文件夾包含了3個(gè)文件,所有的Bootstrap插件被包含在boostrap.js文件中,bootstrap.min.js即上述js的壓縮版本,npm.js通過項(xiàng)目構(gòu)建工具Grunt自動(dòng)生成。

在引用boostrap.js文件之前,請(qǐng)確保你已經(jīng)引用了JQuery庫因?yàn)樗械腂ootstrap插件需要JQuery。

在ASP.NET MVC 項(xiàng)目中添加Bootstrap文件

打開Visual Studio 2013,創(chuàng)建標(biāo)準(zhǔn)的ASP.NET MVC項(xiàng)目,默認(rèn)情況下已經(jīng)自動(dòng)添加了Bootstrap的所有文件,如下所示:

如何在ASP.NET MVC中使用Bootstrap框架

說明微軟對(duì)于Bootstrap是非常認(rèn)可的,高度集成在Visual Studio中。

值得注意的是,在Scripts文件中添加了一個(gè)名為_references.js的文件,這是一個(gè)非常有用的功能,當(dāng)我們?cè)谑褂肂ootstrap等一些前端庫時(shí),它可以幫助Visual Studio啟用智能提示。

當(dāng)然我們也可以創(chuàng)建一個(gè)空的ASP.NET MVC項(xiàng)目手動(dòng)去添加這些依賴文件,正如下圖所示這樣,選擇空的模板:

如何在ASP.NET MVC中使用Bootstrap框架

對(duì)于新創(chuàng)建的空白ASP.NET MVC項(xiàng)目來說,沒用Content,F(xiàn)onts,Scripts文件夾——我們必須手動(dòng)去創(chuàng)建他們,如下所示:

如何在ASP.NET MVC中使用Bootstrap框架

當(dāng)然,也可以用Nuget來自動(dòng)添加Bootstrap資源文件。如果使用圖形界面來添加Bootstrap Nuget Package,則直接搜索Bootstrap即可;如果使用Package Manager Console來添加Bootstrap Nuget Package,則輸入Install-Package bootstrap。

為網(wǎng)站創(chuàng)建Layout布局頁

為了讓我們的網(wǎng)站保持一致的風(fēng)格,我將使用Bootstrap來構(gòu)建Layout布局頁。在Views文件夾創(chuàng)建MVC Layout Page(Razor)布局文件,如下圖所示:

如何在ASP.NET MVC中使用Bootstrap框架

在新創(chuàng)建的Layout布局頁中,使用如下代碼來引用Bootstrap資源文件。

<link href="@Url.Content(" rel="external nofollow" rel="external nofollow" ~/css/bootstrap.css")" rel="stylesheet">

<script src="@Url.Content("~/js/bootstrap.js")"></script>

其中使用 @Url.Content 會(huì)將虛擬或者相對(duì)路徑轉(zhuǎn)換為絕對(duì)路徑,這樣確保Bootstrap資源文件被引用。

新建一個(gè)名為Home的Controller,并且添加默認(rèn)Index的視圖,使其套用上述的Layout布局頁面,如下所示:

如何在ASP.NET MVC中使用Bootstrap框架

使用捆綁打包和壓縮來提升網(wǎng)站性能

捆綁打包(bundling)和壓縮(minification)是ASP.NET中的一項(xiàng)新功能,允許你提升網(wǎng)站加載速度,這是通過限制請(qǐng)求CSS和JavaScript文件的次數(shù)來完成的。本質(zhì)上是將這類文件結(jié)合到一個(gè)大文件以及刪除所有不必要的字符(比如:注釋、空格、換行)。

對(duì)于大多數(shù)現(xiàn)代瀏覽器訪問一個(gè)主機(jī)名都有6個(gè)并發(fā)連接的極限,這意味著如果你在一張頁面上引用了6個(gè)以上的CSS、JavaScript文件,瀏覽器一次只會(huì)下載6個(gè)文件。所以限制資源文件的個(gè)數(shù)是個(gè)好辦法,真正意義上的使命必達(dá),而不是浪費(fèi)在加載資源上。

在Bootstrap項(xiàng)目中使用捆綁打包

因?yàn)槲覀儎?chuàng)建的是空的ASP.NET MVC項(xiàng)目,所以并沒有自動(dòng)引用與打包相關(guān)的程序集。打開Nuget Package Manager Console來完成對(duì)Package的安裝,使用如下PowerShell命令:

install-package Microsoft.AspNet.Web.Optimization 來安裝Microsoft.AspNet.Web.Optimization NuGet package以及它依賴的Package,如下所示:

如何在ASP.NET MVC中使用Bootstrap框架

在安裝完成后,在App_Start中添加 BundleConfig類:

public static void RegisterBundles(BundleCollection bundles)
{
  bundles.Add(new ScriptBundle("~/bootstrap/js").Include(
  "~/js/bootstrap.js",
  "~/js/site.js"));
  bundles.Add(new StyleBundle("~/bootstrap/css").Include(
  "~/css/bootstrap.css",
  "~/css/site.css"));
}

ScriptBundle和StyleBundle對(duì)象實(shí)例化時(shí)接受一個(gè)參數(shù)用來代表打包文件的虛擬路徑,Include顧名思義將你需要的文件包含到其中。

然后在Application_Start方法中注冊(cè)它:

protected void Application_Start()
{
  AreaRegistration.RegisterAllAreas();
  RouteConfig.RegisterRoutes(RouteTable.Routes);
  BundleConfig.RegisterBundles(BundleTable.Bundles);
  BundleTable.EnableOptimizations = true;
}

記住,不要去包含.min類型的文件到打包文件中,比如bootstrap.min.css、bootstrap.min.js,編譯器會(huì)忽略這些文件因?yàn)樗麄円呀?jīng)被壓縮過了。

在ASP.NET MVC 布局頁使用@Styles.Render("~/bootstrap/css")、@Scripts.Render("~/bootstrap/js")來添加對(duì)打包文件的引用。

如果Visual Studio HTML編輯器表明無法找到Styles和Scripts對(duì)象,那就意味著你缺少了命名空間的引用,你可以手動(dòng)在布局頁的頂部添加System.Web.Optimization 命名空間,如下代碼所示:

@using System.Web.Optimization
<!DOCTYPE html>
<html>
 <head>
 <meta name="viewport" content="width=device-width" />
 <title>@ViewBag.Title</title>
 @*<link href="@Url.Content(" rel="external nofollow" rel="external nofollow" ~/css/bootstrap.css")" rel="stylesheet">
 <script src="@Url.Content("~/js/bootstrap.js")"></script>*@
 @Scripts.Render("~/bootstrap/js")
 @Styles.Render("~/bootstrap/css")
 </head>
 <body>
 <p>
  @*@RenderBody()*@
 </p>
</body>
</html>

當(dāng)然為了通用性,最佳的實(shí)踐是在Views文件夾的web.config中添加System.Web.Optimization名稱空間的引用,如下所示:

<namespaces>
 <add namespace="System.Web.Mvc" />
 <add namespace="System.Web.Mvc.Ajax" />
 <add namespace="System.Web.Mvc.Html" />
 <add namespace="System.Web.Routing" />
 <add namespace="Bootstrap.Web" />
 <add namespace="System.Web.Optimization" />
</namespaces>

測(cè)試打包和壓縮

為了使用打包和壓縮,打開網(wǎng)站根目錄下的web.config文件,并且更改compilation元素的dubug屬性為false,即為release。

<system.web>

 <compilation debug="false" targetFramework="4.5" />

 <httpRuntime targetFramework="4.5" />

</system.web>

當(dāng)然你可以在Application_Start方法中設(shè)置BundleTable.EnableOptimizations = true來同樣達(dá)到上述效果(它會(huì)override web.config中的設(shè)置,即使debug屬性為true)。

最后瀏覽網(wǎng)頁,查看源代碼,可以清楚看到打包文件的路徑是之前定義過的相對(duì)路徑,點(diǎn)擊這個(gè)鏈接,瀏覽器為我們打開了經(jīng)過壓縮處理過后的打包文件,如下圖所示:

如何在ASP.NET MVC中使用Bootstrap框架

以上是“如何在ASP.NET MVC中使用Bootstrap框架”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI