HTML5技术

【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上(3)

字号+ 作者:H5之家 来源:H5之家 2016-12-23 17:00 我要评论( )

以 @ 开头用来输出 C# 代码的运行结果, MVC 会自动判断于何处结束 C# 代码,并转入 HTML 代码。 需要注意,页面第一行的 @{ } 用来执行一段 C# 代码,不会输出内容,这里定义了一个 ViewBag.Title 的变量,并在下

@开头用来输出C#代码的运行结果,MVC会自动判断于何处结束C#代码,并转入HTML代码。

 

需要注意,页面第一行的@{ }用来执行一段C#代码,不会输出内容,这里定义了一个ViewBag.Title的变量,并在下面的代码中使用@ViewBag.Title输出到页面中。

 

很多初学者可能有些疑惑,为啥控制器中定义了ViewBag.Message,而在视图中定义了ViewBag.Title,这两者有啥区别?

一般来说是没有功能的区别,仅仅是语义的区别。在视图中定义的变量仅在视图中使用,比如这里定义的ViewBag.Title不仅在About.cshtml中使用,而且在布局视图Shared/­_Layout.cshtml中也用到了。

 

布局视图

布局视图类似于WebForms中的母版页,具体的视图页面会作为一部分嵌入到布局视图中,然后返回到浏览器形成一个完整的页面。

 

每一个视图页面默认会使用Views/_ViewStart.cshtml中的定义的内容:

@{ Layout = "~/Views/Shared/_Layout.cshtml"; }

 

 

这里面指定了布局视图的位置,我们来简单看下布局视图的内容:

@ViewBag.Title - My ASP.NET Application @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) @Html.ActionLink("Home", "Index", "Home")@Html.ActionLink("About", "About", "Home")@Html.ActionLink("Contact", "Contact", "Home") @RenderBody() @DateTime.Now.Year - My ASP.NET Application @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)

 

 

其中head标签下面的title中使用了在About视图中定义的ViewBag.Title属性。

这个布局视图使用Bootstrap库定义的CSS样式来完成,包含标题栏,导航菜单,以及页脚的定义,具体的内容会嵌入@RenderBody()的地方,最终形成完整的HTML页面返回。

 

数据库操作

上面从控制器传入视图的数据是硬编码的一个字符串,实际项目中则经常需要从数据库中读取数据,我们使用微软推荐的Entity Framework CodeFirst开发模式来创建和使用数据库。

安装Entity Framework

首先需要安装EF,在VS2015中找到[工具]菜单,然后找到NuGet包管理器:

 

转到[浏览]选项卡,可以搜索Entity Framework,安装其最新稳定版到项目中:

 

安装后,会自动更改Web.config添加相应的配置信息。

 

 

创建模型

我们计划完成一个简单的学生管理系统,包含基本的增删改查(CRUD)。

首先在Models文件,创建学生(Student)的模型类:

public class Student { public int ID { get; set; } public string Name { get; set; } public int Gender { get; set; } public string Major { get; set; } public DateTime EntranceDate { get; set; } }

 

 

然后创建数据库操作上下文,EF需要这个文件来创建和访问数据库:

public class StudentDbContext : DbContext { public DbSet<Student> Students { get; set; } }

 

 

由于这个类继承自EFDbContext基类,因此需要在文件头部添加如下引用:

using System.Data.Entity;

 

 

 

创建完这两个文件,需要重新编译项目(快捷键Ctrl+Shift+B),否则下面添加控制器时会出错。

添加控制器

Controllers目录上点击右键,添加控制器,弹出向导对话框:

 

这里选择 MVC 5 Controller with views, using Entity Framework,然后进入设置对话框:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 - 路过秋天

    ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    2016-11-20 16:00

  • 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证 - 微软一站式示

    在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

    2016-11-20 15:00

  • ASP.NET Core 之 Identity 入门(二) - Savorboard

    ASP.NET Core 之 Identity 入门(二) - Savorboard

    2016-11-16 13:00

  • ASP.NET Core 之 Identity 入门(一) - Savorboard

    ASP.NET Core 之 Identity 入门(一) - Savorboard

    2016-11-07 15:00

网友点评