MVC专题 专题
您的位置:csharp > MVC专题专题 > ASP.Net MVC Bootstrap
ASP.Net MVC Bootstrap
作者:--    发布时间:2019-11-19

在本章中,我们将看看现在包含在asp.net和mvc中的前端框架bootstrap。这是一个流行的web应用程序前端工具包,将帮助我们建立一个html,css和javascript的用户界面。

它最初是由twitter的网站开发人员为个人使用而创建的,但是由于其灵活性和易用性,它现在是开源的,并且已经深受设计人员和开发人员的欢迎。

您可以使用bootstrap创建一个从小型移动屏幕到大型桌应用的界面。在本章中,我们还将介绍bootstrap如何与布局视图一起工作来构造应用程序的外观。

bootstrap提供布局,按钮,表单,菜单,小部件,图片轮播,标签,徽章,排版以及各种功能所需的所有部分。由于bootstrap都是html,css和javascript,所有开放的标准,你可以使用任何框架,包括asp.net mvc。当你开始一个新的mvc项目时,bootstrap将会出现,在项目中可以找到bootstrap.cssbootstrap.js

我们来创建一个新的asp.net web应用程序。填写项目的名称:mvcbootstrap,然后单击确定 ,会看到下面的对话框。

在这个对话框中,如果选择了空的模板,会得到一个空的web应用程序,并且不会有bootstrap ,不会有任何控制器或任何其他脚本文件。

现在选择mvc模板,然后单击确定 。 当visual studio创建这个解决方案时,它将下载并安装到项目中的一个包将成为bootstrap nuget包。可以通过到packages.config 进行验证,可以看到有bootstrap版本3 的包,如下图所示 -

还可以看到包含不同css文件的content文件夹。

运行这个应用程序,会看到下面的页面。

出现此页面时,看到的大部分布局和样式都是由 bootstrap 应用的布局和样式。 它包括顶部的导航栏,链接以及广告asp.net的显示。它还包括所有这些部分,关于入门和获得更多的类库和虚拟主机。

如果只是稍微拉伸一下浏览器,那么这些浏览器实际上并排放置,这是bootstrap 响应式设计功能的一部分。

如果查看content文件夹,那么应该会看到有一个bootstrap.css 文件。
nuget软件包还提供了一个缩小版本的文件。 在scripts目录下,应该有一个:bootstrap.js 文件,这是bootstrap的一些组件所必需的。

它确实依赖于jquery,幸运的是jquery也安装在这个项目中,并且有一个缩小版的bootstrap javascript文件。

现在的问题是,所有这些在应用程序中添加了哪里? 可能您期望它在布局模板中,位于view/shared/_layout.cshtml 下的此项目的布局视图。

布局视图控制着用户界面的结构。 以下是_layout.cshtml文件中的完整代码。

<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@viewbag.title - 我的 asp.net 应用程序</title>
    @styles.render("~/content/css")
    @scripts.render("~/bundles/modernizr")
</head>
<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                @html.actionlink("应用程序名称", "index", "home", new { area = "" }, new { @class = "navbar-brand" })
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li>@html.actionlink("主页", "index", "home")</li>
                    <li>@html.actionlink("关于", "about", "home")</li>
                    <li>@html.actionlink("联系方式", "contact", "home")</li>
                </ul>
            </div>
        </div>
    </div>
    <div class="container body-content">
        @renderbody()
        <hr />
        <footer>
            <p>© @datetime.now.year - 我的 asp.net 应用程序</p>
        </footer>
    </div>

    @scripts.render("~/bundles/jquery")
    @scripts.render("~/bundles/bootstrap")
    @rendersection("scripts", required: false)
</body>
</html>

在上面的代码中有两点需要注意。 首先在<title>之后,看到下面这行代码。

@styles.render("~/content/css")

styles.render对于 content/css 实际上是bootstrap.css文件将被包含的地方,在底部,会看到下面这行代码 -

@scripts.render("~/bundles/bootstrap")

它正在渲染引导脚本,找出这些包里面究竟是什么,打开app_start文件夹中的bundleconfig.cs 文件,内容如下所示 -

bundleconfig.cs 文件中,可以从底部看到css包包含了bootstrap.css 和自定义的site.css 。如下所示 -

bundles.add(new stylebundle("~/content/css").include(
   "~/content/bootstrap.css",
   "~/content/site.css"));

这是我们添加自己的样式表来定制应用程序外观的地方。还可以看到在包含bootstrap.js 的css包之前出现的bootstrap包,以及另一个javascript文件respond.js

bundles.add(new scriptbundle("~/bundles/bootstrap").include(
   "~/scripts/bootstrap.js",
   "~/scripts/respond.js"));

下面来注释掉bootstrap.css 文件,如下面的代码所示 -

bundles.add(new stylebundle("~/content/css").include(
   //"~/content/bootstrap.css",
   "~/content/site.css"));

再次运行此应用程序,只是为了让您了解bootstrap的功能,因为现在唯一可用的样式是site.css 文件中的样式。得到结果如下 -

正如上面所看到的,失去了页面顶部的导航栏。

现在来看看bootstrap是什么。bootstrap只是自动执行一些操作,当添加类并具有正确的html结构时,bootstrap可为您做一些事情。 如果查看_layout.cshtml 文件,可以看到如以下代码所示的navbar类 -

<div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                @html.actionlink("应用程序名称", "index", "home", new { area = "" }, new { @class = "navbar-brand" })
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li>@html.actionlink("主页", "index", "home")</li>
                    <li>@html.actionlink("关于", "about", "home")</li>
                    <li>@html.actionlink("联系方式", "contact", "home")</li>
                </ul>
            </div>
        </div>
    </div>

它是bootstrap的css类,如navbar,navbar inverse和navbar fixed top。 如果删除了一些像navbar inverse,navbar fixed top这样的类,并且取消注释bootstrap.css,然后再次运行应用程序,应该会看到下面的输出。

会看到有一个导航栏,但现在它不使用反色,所以它是白色的。 它也不会粘在页面的顶部。 当向下滚动时,导航栏会从顶部滚动,将无法再看到它。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册