ASP.NET MVC快速入门之数据库操作(MVC5+EF6)[第一篇][上]

  • ASP.NET MVC快速入门之数据库操作(MVC5+EF6)[第一篇][上]已关闭评论
  • 814 views
  • A+
所属分类:C#.NET 编程技术
【腾讯云】11.11 云上盛惠,云产品限时抢购,1核2G云服务器首年88元

新建项目

打开VS2015,找到菜单项[文件->新建->项目],打开向导对话框:

ASP.NET MVC快速入门之数据库操作(MVC5+EF6)[第一篇][上]

注意我们的选择项:

  1. 运行平台:.NET FrameWork 4.5
  2. 项目模板:ASP.NET Web Application (.NET Framework)
  3. 项目名称:AspNetMvc.QuickStart,如果你在跟着本教程练习,建议起相同的项目名称,方便直接拷贝代码到你的项目中。

 

点击[确定]按钮,向导会带我们到另一个选择对话框:

ASP.NET MVC快速入门之数据库操作(MVC5+EF6)[第一篇][上]

由于本教程是快速入门,所以我们从最简单的入手,只勾选必需的选项:

  1. 不进行身份验证。ASP.NET MVC提供了完善的身份验证方案,我们会有单独的文章讲解。
  2. 仅勾选 MVC 引用。

 

点击[确定],VS2015会创建一个可直接运行的项目,按下快捷键[Ctrl+F5],不调试直接运行:

ASP.NET MVC快速入门之数据库操作(MVC5+EF6)[第一篇][上]

默认的目录结构如下:

ASP.NET MVC快速入门之数据库操作(MVC5+EF6)[第一篇][上]

如果你之前在WebForms下进行开发,对其中的一些文件夹和文件应该很熟悉了:

  1. Web.config:项目配置文件,里面保存项目配置参数以及数据库连接字符串。
  2. packages.config:Nuget配置文件
  3. Global.asax:全局代码文件,提供应用程序级别以及会话级别的事件处理函数,可以在Application_Start中注册全局变量。
  4. favicon.ico:浏览器地址栏图标,在HTML的head标签中引用。
  5. App_Data:放置本地数据库文件,比如LocalDB生成的数据库文件。

 

下面几个文件夹,用来放置静态文件,从名称就可以方便的猜出其用途:

  1. Scripts:放置静态脚本文件,比如jQuery等。
  2. fonts:放置图标字体文件,比如流行的FontAwesome字体等。
  3. Content:放置静态文件,比如xml文件、Bootstrap的CSS库。

 

下面几个文件是ASP.NET MVC新引入的:

  1. App_Start:用来放置应用初始化类,这个是MVC4引入的一个命名约定,其实这就是一个普通的文件夹,没有特殊的含义。
  2. Controllers:控制器类。
  3. Models:模型类,比如EF CodeFirst的模型定义。
  4. Views:视图文件,最初的视图引擎是WebForms View Engine,使用和ASPX文件相同的语法,而现在用的Razor视图引擎是MVC3引入的,以cshtml为后缀。

页面流程

首先看下 [About]页面:

ASP.NET MVC快速入门之数据库操作(MVC5+EF6)[第一篇][上]

这个页面之所以能够呈现在我们眼前,经历了三个主要流程:

  1. MVC的路由引擎根据URL查找相应的控制器(HomeController.cs)。
  2. 控制器的操作方法About准备数据,然后传入视图Home/About.cshtml。
  3. 视图准备HTML片段,放入布局页面并返回浏览器。

路由引擎->控制器

一切还得从Global.asax中说起,在其中的应用程序启用事件中,我们需要注册路由处理器:

protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}

RouteConfig.cs类位于App_Start文件夹中,我们来看下内容:

public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}

这里注册一个名为Default的路由规则,对应的URL是{controller}/{action}/{id},这里三个占位符分别表示:

  1. {controller}:控制器,默认是Home,对应的控制器类是HomeController.cs。
  2. {action}:控制器里面的方法,默认是Index。所以如果用户直接通过http://localhost/访问系统时,默认调用Home控制器中的Index方法处理。
  3. {id}:参数ID,可选项,这个参数对应于操作方法中的id参数。

 

 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin